我已经实现了本文以在SQL Server中调用rabbitmq:
[https://nielsberglund.com/2017/02/11/rabbitmq---sql-server/][1]
但当我尝试使用CLR发送消息时,我收到以下错误:
消息50000,级别16,状态1,过程pr_SomeProcessingStuff,第43行
错误:在执行用户定义的例程或聚合“pr_clr_PostRabbitMsg”的过程中出现.NET Framework错误:
System.ApplicationException:尝试将邮件投递到Exchange时通道池被阻止:amq.topic.
System.ApplicationException:
在RabbitMQSqlClr.RabbitPublisher.Post(字符串交换,字节[]消息,字符串主题)
在RabbitMQSqlClr.RabbitMQSqlServer.pr_clr_PostRabbitMsg(Int32端点ID,发送到Post的字符串消息)
位于第0行,位于第13
这是我的兔子配置
1条答案
按热度按时间2g32fytz1#
首先,非常感谢@NielsBerglund为我们提供RabbitMQ-SqlServer。
我刚刚解决了同样的错误后,相当几个小时的头部撞击。
我能够使用Neils提供的VS解决方案中的控制台应用程序在两个不同的服务器(数据库服务器和应用程序服务器)之间发送消息,从而证明防火墙等没有阻止消息。
但是,在SQL Management Studio中执行SQL CLR存储过程总是返回通道池阻塞错误。
经过多次修改后,我注意到在tb_RabbitEndpoint中更改交换名称(使用pr_UpsertRabbitEndpoint)仍然返回完全相同的错误消息,引用了以前的交换名称。
我可以通过重新配置SQL CLR来解决此问题:
EXEC sp_configure '已启用CLR',0
开始
重新配置
开始
EXEC sp_configure '已启用CLR',1
开始
重新配置
开始
执行rmq.pr: