我正在尝试向我在azure中托管的队列发送消息 . 我的应用程序通过代理与世界通信 . 我使用.Net Core 2.1和新的标准azure服务总线nuget . 我需要通过端口443在网络套接字上使用Amqp . 不幸的是我没有成功 . 是否有人实施过这样的事情?任何人都可以提供有关如何实现这一目标的代码段吗?

提前致谢!这是我正在尝试的:

var transportProvider = new AmqpTransportProvider();
var amqpSettings = new AmqpSettings
{ 
        RequireSecureTransport = true, TransportProviders = {transportProvider} 
};

var socketSettings = new WebSocketTransportSettings()
{
      Proxy = new WebProxy() {Address = new Uri("http://myproxy"), BypassProxyOnLocal = false},
      SubProtocol = "https",
      Uri = new Uri($"wss://{_azureConfiguration.NameSpace}"),
};

AmqpTransportInitiator transportIntInitiator = new AmqpTransportInitiator(amqpSettings, socketSettings);
var b = transportIntInitiator.ConnectAsync(TimeSpan.FromSeconds(30), new TransportAsyncCallbackArgs());

ServiceBusConnection s = new ServiceBusConnection($"sb://{_azureConfiguration.NameSpace}", TransportType.AmqpWebSockets);
s.TokenProvider = tokenProvider;
s.OperationTimeout = TimeSpan.FromSeconds(30);

var sender = new MessageSender(s, _azureConfiguration.QueueName);
string messageBody = $"Message";
var message = new Message(Encoding.UTF8.GetBytes(messageBody));
await sender.SendAsync(message);

代码出现以下错误:无法连接到远程服务器 . 内部异常详细信息:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而 Build 连接失败 .

堆栈跟踪:

System.Net.WebSockets.WebSocketException(0x80004005):无法连接到远程服务器---> System.Net.Http.HttpRequestException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者已 Build 连接失败,因为连接的主机无法响应---> System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者 Build 的连接失败,因为连接的主机无法响应在System.Net.Http.ConnectHelper.ConnectAsync(String host,Int32 port,CancellationToken cancellationToken)---内部异常堆栈跟踪结束---在System.Net.Http.ConnectHelper.ConnectAsync(String host,Int32 port,CancellationToken)在System.Net.Http.HttpConnectionPool的System.Threading.Tasks.ValueTask 1.get_Result() at System.Net.Http.HttpConnectionPool.CreateConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Threading.Tasks.ValueTask 1.get_Result()处于System.Net.Http.HttpConnectionPool.WaitForCreatedConnectionAsync(ValueTask 1 creationTask) at System.Threading.Tasks.ValueTask 1.get_Result())处取消了 . 在System.Net.WebSockets.WebSocketHandle.ConnectAsyncCore(Uri uri,CancellationToken cancellationToken,ClientWebSocketOptions选项)的System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage请求,CancellationToken cancellationToken)上的.SendWithRetryAsync(HttpRequestMessage请求,布尔doRequestAuth,CancellationToken cancellationToken)at at Microsoft.Azure.ServiceBus.Core.MessageSender.OnSendAsync(IList 1 messageList) in C:\source\azure-service-bus-dotnet\src\Microsoft.Azure.ServiceBus\Core\MessageSender.cs:line 562 at Microsoft.Azure.ServiceBus.RetryPolicy.RunOperation(Func 1操作,TimeSpan operationTimeout)位于C:\ source \ azure-service-bus-dotnet \ src \ Microsoft.Azure.ServiceBus \ RetryPolicy.cs:Microsoft 83行C:\ source \ azure-service-bus-dotnet \ src \ Microsoft.Azure.ServiceBus \ Core \ MessageSender.cs中的.Azure.ServiceBus.RetryPolicy.RunOperation(Func 1 operation, TimeSpan operationTimeout) in C:\source\azure-service-bus-dotnet\src\Microsoft.Azure.ServiceBus\RetryPolicy.cs:line 105 at Microsoft.Azure.ServiceBus.Core.MessageSender.SendAsync(IList 1 messageList):第252行