服务总线连接无法从内部控制台应用程序运行



我创建了一个.net core 3.1控制台应用程序,用于读取azure服务总线队列消息,并在客户端本地VM中部署了EXE。它最初可以工作,但现在不能在VM上工作(现在也可以在本地机器上工作(。我在内部部署VM中执行exe时超时(套接字异常(。我正在使用共享访问策略连接串来连接服务总线。

异常:Azure.Messaging.ServiceBus.ServiceBusException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机没有响应而建立的连接失败。错误代码:超时(服务通信问题(--->System.Net.Sockets.SocketException(10060(:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接的主机未能响应而建立的连接失败。位于Microsoft.Azure.Amqp.Transport.TransportStream.EndRead(IAsyncResult-asyncResult(位于Microsoft.Azure.Amqp.Transport.TransportStream。<gt;c__DisplayClass22_0.b_1(IAsyncResult a(在System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction,Action1 endAction, Task1 promise,Boolean requires Synchronization(

企业环境中最常见的连接问题是通过TCP(5671/5672(进行AMQP所需的端口未打开。通过WebSockets将传输更改为AMQP通常会有所帮助,因为它将使用端口443,并且如果需要,可以通过代理进行路由。

在创建客户端时,可以使用ServiceBusClientOptions指定传输和代理(如果需要(:

var options = new ServiceBusClientOptions
(
TransportType = ServiceBusTransportType.AmqpWebSockets,
WebProxy = new WebProxy("https://proxyserver:80", true)
};

var client = new ServiceBusClient("<< CONNECTION STRING >>", options);

有关更多信息,您可能需要查看服务总线故障排除指南。

相关内容

最新更新