Я пытаюсь отправить сообщение в мою очередь, размещенную в Azure.Мое приложение общается с миром через прокси.Я использую .Net Core 2.1 и новый стандартный сервисный сервис Azure.Мне нужно использовать Amqp через веб-сокеты через порт 443. К сожалению, мне это не удалось.Есть кто-нибудь, кто реализовал такую вещь?Кто-нибудь может предоставить фрагмент кода о том, как этого добиться?
Заранее спасибо!Вот что я пытаюсь:
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);
Код получает следующую ошибку: Невозможно подключиться к удаленному серверу.Внутренние сведения об исключении: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, так как подключенный хост не смог ответить.
StackTrace:
Система.Net.WebSockets.WebSocketException (0x80004005): невозможно подключиться к удаленному серверу ---> System.Net.Http.HttpRequestException: попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через определенный период времени, или не удалось установить соединениепотому что подключенный хост не смог ответить ---> System.Net.Sockets.SocketException: попытка подключения не удалась, потому что подключенная сторона не ответила должным образом через некоторое время, или не удалось установить соединение, поскольку подключенный хост не смог ответить в системе.Net.Http.ConnectHelper.ConnectAsync (Строковый хост, порт Int32, CancellationToken cancellationToken) --- Конец трассировки стека внутренней исключительной ситуации --- на System.Net.Http.ConnectHelper.ConnectAsync (Строковый хост, IПорт nt32, CancellationToken (CancellationToken) в 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_Restt.Phttp) .HTP..SendWithRetryAsync (запрос HttpRequestMessage, Boolean doRequestAuth, CancellationToken cancellationToken) в System.Net.Http.RedirectHandler.SendAsync (запрос HttpRequestMessage, CancellationTokenMicrosoft.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, операция TimeSpanTimeout) в C: \ source \ azure-service-bus-dotnet \ src \ Microsoft.Azure.ServiceBus \ RetryPolicy.cs: строка 83в Microsoft.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) в C: \ source \ azure-service-bus-dotnet \ src \ Microsoft.Azure.ServiceBus \ Core \ MessageSender.cs: строка 252