У меня есть простое консольное приложение netcore 3.0, которое инициализирует соединение с Azure Service Bus с использованием Rebus (v7.1.0). Я создал приложение для автономной работы, затем запустил его на своем ноутбуке и на другом компьютере, который есть у нас в офисе.
Проблема:
Приложение выдает ошибку (см. Ниже) только на втором компьютере, работающем в контейнере docker.
Что я пробовал:
- Запуск приложения без docker на обеих машинах. OK
- Запуск приложения в контейнере docker на моем ноутбуке с использованием того же Dockerfile. OK
- В журналах docker я не нашел ничего релевантного.
- Переустановите docker на 2-й компьютер.
- Попробуйте старую версию docker. Та же проблема возникает
Вопросы:
- Знаете ли вы, почему это происходит?
- Я относительно новичок в docker, вы, ребята, можете дать мне некоторые инструменты или советы по как понять что происходит?
Характеристики:
Мой ноутбук:
- Windows: 1903 (сборка 18362.657)
- Docker сообщество пользователей ПК: 2.2.0.3 (42716)
2-й компьютер:
- Windows: 1809 (сборка 17763,194)
- Docker настольное сообщество: 2.2.0.3 (42716 )
Большое спасибо за вашу помощь!
Полная ошибка:
[INF] Rebus.AzureServiceBus.AzureServiceBusTransport (Thread #1): Initializing Azure Service Bus transport with queue "blablabla"
[INF] Rebus.Bus.RebusBus (Thread #1): Bus "Rebus 1" stopped
Could not resolve Rebus.Bus.IBus with decorator depth 0 - registrations: Rebus.Injection.Injectionist+Handler
Microsoft.Azure.ServiceBus.ServiceBusException: No such host is known.
---> System.Net.Http.HttpRequestException: No such host is known.
---> System.Net.Sockets.SocketException (11001): No such host is known.
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.FinishSendAsyncBuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
at Microsoft.Azure.ServiceBus.Management.ManagementClient.SendHttpRequest(HttpRequestMessage request, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at Microsoft.Azure.ServiceBus.Management.ManagementClient.SendHttpRequest(HttpRequestMessage request, CancellationToken cancellationToken)
at Microsoft.Azure.ServiceBus.Management.ManagementClient.GetEntity(String path, String query, Boolean enrich, CancellationToken cancellationToken)
at Microsoft.Azure.ServiceBus.Management.ManagementClient.GetQueueAsync(String queuePath, CancellationToken cancellationToken)
at Microsoft.Azure.ServiceBus.Management.ManagementClient.QueueExistsAsync(String queuePath, CancellationToken cancellationToken)
at Rebus.AzureServiceBus.AzureServiceBusTransport.<>c__DisplayClass30_0.<<InnerCreateQueue>b__1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at Rebus.Internals.AsyncHelpers.CustomSynchronizationContext.<Run>b__7_0(Object _)
at Rebus.Internals.AsyncHelpers.CustomSynchronizationContext.Run()
at Rebus.Internals.AsyncHelpers.RunSync(Func`1 task)
at Rebus.AzureServiceBus.AzureServiceBusTransport.InnerCreateQueue(String normalizedAddress)
at Rebus.AzureServiceBus.AzureServiceBusTransport.Initialize()
at Rebus.Config.RebusConfigurer.<>c__DisplayClass13_0.<Start>b__27(IResolutionContext c)
at Rebus.Injection.Injectionist.Resolver`1.InvokeResolver(IResolutionContext context)
at Rebus.Injection.Injectionist.ResolutionContext.Get[TService]()