本文介绍使用.NET SDK接入云消息队列 RocketMQ 版的环境准备工作,以便您后续使用.NET SDK收发消息。
- 推荐您使用最新的RocketMQ 5.x系列SDK,5.x系列SDK作为主力研发版本,和云消息队列 RocketMQ 版5.x服务端完全兼容,提供了更全面的功能并支持更多增强特性。更多信息,请参见5.x系列SDK。
- RocketMQ 4.x/3.x系列SDK和ONS系列SDK后续仅做功能维护,建议仅存量业务使用。
Windows .NET SDK简介
阿里云提供的.NET版本是基于云消息队列 RocketMQ 版的CPP版本的托管封装,这样能保证.NET完全不依赖于Windows.NET公共库。内部采用C++多线程并发处理,保证.NET版本的高效稳定。
在使用Visual Studio(VS)开发.NET的应用程序和类库时,默认的目标平台为“Any CPU”,即运行时可根据CPU类型自动选择x86或x64。在运行时,CLR才会将其JIT发射为x86或x64的机器码。而C/C++编译生成的DLL就是机器码。所以,其平台的决策是在编译时决定的。通过编译选项的设置,将C/C++项目编译为x64的64位DLL,因此提供了包含VS2015和.NET Framework 4.5.2编译的release64位版本DLL。其他VS版本也可以使用。
.NET SDK仅支持Windows 64-bit操作系统。
C++ DLL文件需要Visual C++ 2015运行时环境安装包。如果没有安装Visual Studio 2015运行时环境,请执行SDK中提供的vc_redist.x64.exe来完成安装。
下载Windows .NET SDK
新用户或者不考虑升级成本的老用户请下载新版SDK。最新版本的.NET SDK下载链接,请参见版本说明。
下载完成后进行解压,会有以下目录结构,各目录的说明如下:
lib/
底层的C++ DLL相关文件,以及Visual C++ 2015运行时环境安装包。如果没有安装Visual Studio 2015运行时环境,需要拷贝安装vc_redist.x64.exe,如下所示。
64/ ONSClient4CPP.lib ONSClient4CPP.dll ONSClient4CPP.pdb vc_redist.x64.exe
demo/
包含了普通消息发送、Oneway消息发送、顺序消息发送、普通消息消费、顺序消息消费等代码示例。
interface/
封装PINVOKE调用的代码,需要包含到您的项目代码中。
SDK_GUIDE.pdf
SDK环境准备文档和FAQ。
changelog
新版本发布解决的问题和引入的新特性列表。
Visual Studio 2015使用.NET SDK配置说明
使用Visual Studio 2015创建自己的项目。
右键单击项目选择添加 > 现存在项,将下载的SDK中的interface目录下的所有文件都添加进去。
右键单击项目选择
。设置活动解决方案配置为release;设置活动解决方案平台为x64。编写测试程序,然后进行编译,最后将SDK下的DLL放到和可执行文件同一级目录下,或者系统目录下即可运行。
说明SDK提供了设置好的Demo,直接打开工程进行编译即可。运行的时候将相关的DLL文件拷贝到和可执行文件同级目录下,如下图。
Visual Studio 2015配置ASP.NET使用云消息队列 RocketMQ 版SDK
使用VS2015创建一个ASP.NET的Web Forms项目。
右键单击项目选择
。设置活动解决方案配置为release;设置活动解决方案平台为x64。右键单击项目选择
,将下载的SDK中的interface目录下的所有文件都添加进去。请参考上文中配置普通的.NET项目的步骤2。
在Global.asax.cs文件中添加启动和关闭SDK的代码。
重要建议将SDK的代码封装成一个单例类,这样可以避免因为作用域的问题被垃圾回收器回收。SDK的example目录下提供了一个Example.cs,实现了一个简单的单例实现。您需要把Example.cs包含到自己的项目中才能使用。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Optimization; using System.Web.Routing; using System.Web.Security; using System.Web.SessionState; using ons; // 这个命名空间是SDK所在的命名空间。 using test; // 这是一个简单封装SDK的类所在命名空间,建SDK的example目录下的Example.cs。 namespace WebApplication4 { public class Global : HttpApplication { void Application_Start(object sender, EventArgs e) { // Code that runs on application startup RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); try { // 启动SDK的代码,下面是简单封装SDK后的代码。 OnscSharp.CreateProducer(); OnscSharp.StartProducer(); } catch (Exception ex) { // 处理异常。 } } protected void Application_End(object sender, EventArgs e) { try { // 关闭SDK的代码。 OnscSharp.ShutdownProducer(); } catch (Exception ex) { // 处理异常。 } } } }
编写测试程序,然后进行编译。
将SDK下的DLL放到和可执行文件同一级目录下,或者系统目录下即可运行。
选择
,然后选中对网站和项目使用IIS Express的64位版。