此文将展示 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 日志,联系售后技术支持。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。