Ошибка HTTP-запроса - при отправке запроса произошла ошибка - PullRequest
0 голосов
/ 29 октября 2018

Мы используем следующий код для вызова .NET Web API. Служба размещена на IIS с проверкой подлинности Windows. Сервисный вызов инициируется из консольного задания. (И сервис, и консоль находятся в .NET Framework 4.5 оба).

Размер сообщения _payload велик (~ 4990 КБ). Сервису web.config уже присвоено maxRequestLenghth большое значение. Это не терпит неудачу для маленьких запросов.

Интересно, что каждый раз для запроса не требуется 5 минут. 401 для проверки подлинности NTLM присутствует в журналах IIS, но ничего после этого.

Я полагаю, это проблема тайм-аута, пожалуйста, помогите

Код:

public async Task<ServiceResponse> InvokeService()
                {
                string clientBaseAddress = ConfigurationManager.AppSettings["ServiceBaseAddress"];
                string requestUri = ConfigurationManager.AppSettings["ServiceRequestUri"];
                HttpClient client;
                ServiceResponse serviceResponse = null;
                HttpClientHandler handler = new HttpClientHandler()
                {
                    UseDefaultCredentials = true
                };
                client = new HttpClient(handler);
                using (client)
                    {
                        try
                        {
                        client.BaseAddress = new Uri(clientBaseAddress);
                        client.DefaultRequestHeaders.Accept.Clear();
                        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                        client.Timeout = TimeSpan.FromHours(1);
                        HttpResponseMessage response = await client.PostAsJsonAsync(requestUri, _payLoad);

                        }
                        catch(Exception ex)
                        {
                        }
                    }
                 return serviceResponse;
                }

Исключение

начало сервисного вызова: 5: 21: 16 AM

Исключение поймано-

Произошла ошибка при отправке запроса.

в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult () в BES_SPServiceTest.Program.d__1.MoveNext ()

Внутреннее исключение:

Базовое соединение было закрыто: при получении произошла непредвиденная ошибка.

at System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult) at System.Net.Http.HttpClientHandler.GetResponseCallback (IAsyncResult ar)

Внутреннее исключение

Невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом.

в System.Net.Security._SslStream.EndRead (IAsyncResult asyncResult) в System.Net.TlsStream.EndRead (IAsyncResult asyncResult) в System.Net.PooledStream.EndRead (IAsyncResult asyncResult) в System.Net.Connection.ReadCallback (IAsyncResult asyncResult)

Внутреннее внутреннее исключение

Существующее соединение было принудительно закрыто удаленным хостом

в System.Net.Sockets.Socket.EndReceive (IAsyncResult asyncResult) в System.Net.Sockets.NetworkStream.EndRead (IAsyncResult asyncResult)

остановка: 5: 26: 16 AM

...