HTTP请求失败-发送请求时发生错误

时间:2018-10-29 10:02:15

标签: c# asp.net-web-api2

我们正在使用以下代码来调用.NET Web API。该服务托管在具有Windows身份验证的IIS上。服务调用从控制台作业启动。 (服务和控制台都在.NET Framework 4.5上。)

发布的_payload大(〜4990 KB)。服务web.config已将maxRequestLenghth设置为较大的值。对于少量请求,它不会失败。

有趣的是,每次请求失败都需要5分钟。 IIS日志中存在用于NTLM身份验证的401,但之后没有任何内容。

我想这是一个超时问题,请帮忙

代码:

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

     

捕获到异常-

     

发送请求时出错。

     

在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)     在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)     在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()     在BES_SPServiceTest.Program.d__1.MoveNext()

     

内部异常:

     

基础连接已关闭:接收时发生意外错误。

     

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

     

内部的内部异常

     

无法从传输连接中读取数据:远程主机强行关闭了现有连接。

     

at 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

0 个答案:

没有答案