我们正在使用以下代码来调用.NET Web API。该服务托管在具有Windows身份验证的IIS上。服务调用从控制台作业启动。 (服务和控制台都在.NET Framework 4.5上。)
发布的_payload
大(〜4990 KB)。服务web.config已将maxRequestLenghth
设置为较大的值。对于少量请求,它不会失败。
我想这是一个超时问题,请帮忙
代码:
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