开发者社区> 问答> 正文

MQ C# SDK 调试方法及注意事项有哪些?

此文将展示 MQ C# SDK 整个调试过程,笔者直接使用 SDK 包中的 example 消费示例代码,开发环境为 Win7, 64位,Visual Studio Professional 2013(版本 12.0.21005.1 REL),项目配置 Release, 64位。

下载最新 SDK 包(文中使用代码为2015年12月14号发布),并解压(本地保存目录为D:\Doc\ONS\NET\aliyun-ons-client-cpp-windows)。

在调试前请详细阅读使用文档ALIYUN_ONS_CLIENT_FOR_CPP_AND_NET_USER_GUIDE中关于NET工程配置部分。

解压后,lib提供了32位和64位的依赖包(ONSClient4CPP.dll, ONSClient4CPP.lib, ONSClient4CPP.pdb, ManagedONS.dll, ManagedONS.pdb),example提供了消息发送和消息消费的示例代码,本文使用的就是消息消费示例代码。

新建项目

1.jpg

目标框架需要.NET Framework 4 Client Profile或更高版本。

将example中pushConsumerNETForEx.cs内容复制过来

项目配置

1)引用ManagedONS.dll

点击浏览,选择 D:\Doc\ONS\NET\aliyun-ons-client-cpp-windows\lib\64位\ManagedONS.dll

5.jpg

这里不需要引用 ONSClient4CPP.dll,引用 ManagedONS.dll 成功后,会自动引用 ONSClient4CPP.dll。

6.jpg

2) 项目右键->属性->生成

配置:Release

平台:x64

目标平台:x64

3.jpg

如果平台下拉框没有看到x64,只看到Any CPU,可以在配置管理器中自行新建。

2.jpg

3) 调试->启用本机调试

4.jpg

4)将64位lib目录下的所有文件拷贝到程序运行目录下

很重要!!!否则将报错,找不到依赖项。

7.jpg

将ManagedONS.dll,ManagedONS.pdb,ONSClient4CPP.dll,ONSClient4CPP.lib,ONSClient4CPP.pdb,msvcp120.dll,msvcr120.dll 拷贝到程序运行目录下。

msvcp120.dll和msvcr120.dll是vs组件,一般在本地安装vs后,可在C:\Windows\System32里找到;如果没有,也不用着急,将这两个dll拷贝到C:\Windows\System32或者放到程序运行目录下就可以了。

生成解决方案

8.jpg

这里可以看到,程序运行目录下生成了可执行文件。

启动调试

启动调试前,用户根据自己的数据,修改参数 consumerId, topic, AccessKey, SecretKey。

factoryInfo.setFactoryProperty(factoryInfo.getConsumerIdName(), "CID_xxxxxxxxx"); //在ONS控制台申请的consumerId

factoryInfo.setFactoryProperty(factoryInfo.getPublishTopicsName(), "xxxxxxxx");// 在ONS 控制台申请的msg topic

factoryInfo.setFactoryProperty(factoryInfo.getAccessKeyName(), "xxxxxxx");//ONS AccessKey

factoryInfo.setFactoryProperty(factoryInfo.getSecretKeyName(), "xxxxxxxxxxx");// ONS SecretKey

注意一,consumerId, producerId, topic需要提前在控制台创建,公网环境的topic可在本地测试使用,否则需要部署在相应地域ECS上才能正常使用ONS服务。

注意二,如果不是聚石塔用户,请将下面这行代码注释掉

//factoryInfo.setOnsChannel(ONSChannel.CLOUD)

注意三,pConsumer.start();之后,让主线程休眠 Thread.Sleep(N),设置合适的N,留足够时间给消费线程消费消息。当不需要消费消息时,再执行 pConsumer.shutdown(),执行shutdown后,消费线程将会退出,不再接收消息。

检验消息是否消费成功

启动消费端,可使用控制台发送消息,可看到消费端成功收到消息。

9.jpg

本地 SDK 日志位于当前用户根目录下,文件夹\logs\metaq-client4cpp中。

这里再次提醒,32位或者64位依赖包 ManagedONS.dll 的引入和 Win32, x64平台的选择一定要一致;另外,请严格按照文中 项目配置 进行参数配置和拷贝。如果问题还未能解决,请提供本地 SDK 日志,联系售后技术支持。

展开
收起
猫饭先生 2017-10-30 09:43:45 2851 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
RocketMQ Client-GO 介绍 立即下载
RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载