本文介绍使用TCP协议的.NET SDK方式接入云消息队列 RocketMQ 版的环境准备工作,以便您后续使用TCP协议的.NET SDK收发消息。
使用前,请注意以下几点:
使用云消息队列 RocketMQ 版服务的应用程序需要部署在阿里云ECS上。
代码里涉及到的Topic和Group ID,需要到控制台上创建。Message Tag可以完全由应用自定义。创建步骤,请参见快速入门中的创建资源。
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,如下所示。不同版本间SDK文件可能有所差异,具体文件内容请以实际下载的SDK版本为准。
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。
- 右键单击项目选择
请参考上文中配置普通的.NET项目的步骤2。
,将下载的SDK中的interface目录下的所有文件都添加进去。 - 在Global.asax.cs文件中添加启动和关闭SDK的代码。
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的类所在命名空间。 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位版。