QueueClient发送抛出“无法连接到net.tcp://xxx.servicebus.windows.net:9354 /”错误

时间:2016-08-24 21:53:06

标签: c# .net azure tcp

我正在使用Microsoft.ServiceBus.dll(版本2.1)来处理Windows Server 1.1的Service Bus。

我们还希望此库能够与Azure Service总线通信。它仅适用于一个域中的计算机(没有端口限制)。但是,在更受限制的域中的计算机上(某些端口被阻止),我收到了以下错误。如果我切换Microsoft.ServiceBus.dll 3.0,则相同的代码在受限域中起作用。为什么Microsoft.ServiceBus.dll 3.0有效且Microsoft.ServiceBus.dll 2.1在同一实验室(域)中不起作用?

  

无法连接到net.tcp://xxx.servicebus.windows.net:9354 /。连接尝试持续时间跨度为00:00:20.9992011。   TCP错误代码10060:连接尝试失败,因为连接方在一段时间后没有正确响应或已建立   连接失败,因为连接的主机无法响应40.86.102.100:9354    在Microsoft.ServiceBus.Common.AsyncResult.End [TAsyncResult](IAsyncResult结果)      在Microsoft.ServiceBus.Messaging.IteratorAsyncResult 1.RunSynchronously() at Microsoft.ServiceBus.Messaging.MessageSender.OnSend(TrackingContext trackingContext, IEnumerable 1条消息,TimeSpan超时)      在Microsoft.ServiceBus.Messaging.MessageSender.Send(TrackingContext trackingContext,IEnumerable`1消息,TimeSpan超时)      在Microsoft.ServiceBus.Messaging.MessageSender.Send(BrokeredMessage消息)      在Microsoft.ServiceBus.Messaging.QueueClient.Send(BrokeredMessage消息)

当我使用Microsoft.ServiceBus.dll 3.0与SB for Windows Server 1.1对话时,我收到以下错误: “远程服务器返回错误:(400)错误请求。不支持查询字符串中的api-version。要么从Uri中删除它,要么使用'2012-03,2012-08,2013-04,2013 -07' 。“

基于此链接Service Bus 1.1 creating Queue with WindowsAzure.ServiceBus dll,我必须使用Microsoft.ServiceBus.dll 2.1。 我想使用Microsoft.ServiceBus.dll版本,它可以与Azure服务总线和SB for Windows Server 1.1通信。似乎2.1是唯一的选择,但它给了我 在该受限制的域中遇到麻烦

1 个答案:

答案 0 :(得分:0)

  

为什么Microsoft.ServiceBus.dll 3.0有效,Microsoft.ServiceBus.dll 3.1

根据您的描述,您似乎写错了版本的Microsoft.serverBus.dll 3.1。我们可以理解为2.1版本吗?

从Microsoft Azure Service Bus发行说明中,我们可以找到以下信息:

•一般:针对.Net 4.5编译 - .Net 4.0项目也需要重新编译.Net 4.5。 •常规:删除所有Messaging和EventHub类的旧的Begin / End样式异步API。请改用Task base async API。

3.0以上版本将针对.Net4.5进行编译。因此,如果您的应用程序使用.Net 4.5。最好选择高于3.0的Microsoft.ServiceBus.dll版本。