请求远程网站出现大量的错误,需要怎么处理?
System.AggregateException: One or more errors occurred. ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.IO.IOException: Unable to read data from the transport connection: 远程主机强迫关闭了一个现有的连接。. ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。
at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
at System.Net.PooledStream.EndRead(IAsyncResult asyncResult)
at System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar)
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task`1.get_Result()
……
远程的网站是我做的,怎么解决?
应该是对方服务器出问题了,或者关机了,或者断网了,或者他们设置有ip白名单,你的ip不在里面
是对方服务器的问题,你换个网站请求试试!
可能是达到了远程服务器的连接数据限制
我用了两台阿里云ECS,配置都是4核8G内存,怎么能排查出问题?
@ha666: 原来用的是阿里云。是频繁出现,还是偶尔出现?
@dudu: 出现过两次了,几天前出现过一次,今天又出现了。
@ha666: 你向阿里云提交过式工单了吗?
@dudu: 谢谢,我是聚石塔的,我云聚石塔提问。
@ha666: 建议先让阿里云确认一下底层有没有发生TCP连接断开的因素
@dudu: 可以可以
这通常是使用异步任务操作时,任务里出现异常抛出的System.AggregateException类型异常。任务里出现的错误常见的有time out,或者其他网络异常。建议先排查远程站点能不能访问,确认没有问题的话,检查一下客户端发送请求的代码。有一个比较经典的例子是使用HttpClient发送请求,没有使用单例,或者在任务中阻塞了线程导致死锁,引发了等待超时(不是服务器的响应超时,是client的超时)。
如果可以,尝试捕获Task里面实际的异常,会比较清楚的知道出现了什么错误。