本文介紹使用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位版。