Ocelot не может подключиться к нисходящему серверу в докереC#

Место общения программистов C#
Ответить
Anonymous
 Ocelot не может подключиться к нисходящему серверу в докере

Сообщение Anonymous »

У меня есть шлюз, который сопоставляет несколько сервисов. Это отлично работает, когда я запускаю его без докера. Однако когда я перехожу на версию Docker, она просто не работает.
Я получаю следующее сообщение:

: POST'
2024-10-21 06:21:49 [10:21:49 WRN] requestId: 0HN7H3M32VGVE:00000001,
previousRequestId: Нет ПредыдущийRequestId, сообщение: 'Код ошибки:
Сообщение ConnectionToDownstreamServiceError: ошибка подключения к
нисходящей службе, исключение: System.Net.Http.HttpRequestException:
Соединение отклонено (crm:8001) 21 октября 2024 06:21:49 --->
System.Net.Sockets.SocketException (111): соединение отклонено
2024-10-21 06:21:49 в
System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketErrorошибка, CancellationToken cancelToken) 2024-10-21 06:21:49 в
System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16
token) 2024-10-21 06:21:49 в
System.Net.Sockets.Socket.g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask ConnectTask, CancellationToken cancelToken)
21 октября 2024 06:21 :49 at
System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String хост,
порт Int32, HttpRequestMessage InitialRequest, Boolean async,
CancellationToken cancelToken) 2024-10-21 06:21:49 --- Конец
трассировки внутреннего стека исключений --- 2024-10-21 06:21:49 в
System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String хост,
порт Int32 , HttpRequestMessage InitialRequest, Boolean async,
CancellationToken cancelToken) 2024-10-21 06:21:49 в
System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage
запрос, Boolean async, CancellationToken cancelToken)
2024-10-21 06:21:49 в
System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage
запрос, Boolean async, CancellationToken cancelToken)
2024- 10-21 06:21:49 в
System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem
queueItem) 2024-10-21 06:21:49 в
System.Threading.Tasks .TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken
cancellationToken) 2024-10-21 06:21:49 в
System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage
запрос, Boolean async, олеанский doRequestAuth, CancellationToken
cancellationToken) 2024-10-21 06:21:49 в
System.Net.Http.DiagnosticsHandler.SendAsyncCore(HttpRequestMessage
request, Boolean async, CancellationToken cancelToken)
2024-10-21 06:21:49 в
Ocelot.Requester.TimeoutDelegatingHandler.SendAsync(HttpRequestMessage
request, CancellationToken cancelToken) 2024-10-21 06:21:49

at
Ocelot.Requester.MessageInvokerHttpRequester.GetResponse(HttpContext
httpContext) ошибки, обнаруженные в ResponderMiddleware. Ошибка установки
ответа на путь запроса:/crm/customers/get-page, метод запроса:
POST'

У меня есть изменил ocelot.json с этого:

Код: Выделить всё

{
"Routes": [
// CRM routes
{
"DownstreamPathTemplate": "/{everything}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 8001
}
],
"UpstreamPathTemplate": "/crm/{everything}",
"UpstreamHttpMethod": [ "GET", "POST" ]
}
//other mappings
],
"GlobalConfiguration": {
"BaseUrl": "http://localhost:5000;https://localhost:5001"
}
}
кому:

Код: Выделить всё

{
"Routes": [
// CRM routes
{
"DownstreamPathTemplate": "/{everything}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "crm",
"Port": 8001
}
],
"UpstreamPathTemplate": "/crm/{everything}",
"UpstreamHttpMethod": [ "GET", "POST" ]
}
// other mappings.
"GlobalConfiguration": {
"BaseUrl": "http://localhost:5000;https://localhost:5001"
}
}
Почему это не позволяет подключиться к службам докера. Все они работают правильно с почтальоном.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-docker
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»