【发布时间】:2013-06-14 14:44:51
【问题描述】:
我正在使用一项服务以 XML 文档的形式提取酒店列表。在我们的开发服务器上进行测试时,所有这些都可以正常工作,但是在部署它后不久,使用它的所有页面都被破坏并显示此错误:
An operation on a socket could not be performed because the system lacked
sufficient buffer space or because a queue was full 91.103.175.187:80
Description: An unhandled exception occurred during the execution of the current
web request. Please review the stack trace for more information about the error
and where it originated in the code.
Exception Details: System.Net.Sockets.SocketException: An operation on a socket
could not be performed because the system lacked sufficient buffer space or
because a queue was full 91.103.175.187:80
Stack Trace:
[SocketException (0x2747): An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full 91.103.175.187:80]
System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) +305
System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) +699
[WebException: Unable to connect to the remote server]
System.Net.HttpWebRequest.GetResponse() +7859156
Laterooms.Gateway.LateroomsGateway.GetHotelsWithurl(String url)
Laterooms.Gateway.LateroomsGateway.GetHotelsByKeyword(String keyword, String orderBy)
Laterooms.LateroomsManager.GetHotelsByKeyword(String keyword, String orderBy, String lang)
看到这个后,我认为这可能是由于发出的请求量很大,所以我实现了缓存,但仍然出现相同的问题。这是我用来提取数据的代码:
HttpWebRequest request = null;
Uri uri = new Uri(url);
request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.AllowWriteStreamBuffering = false;
request.ContentLength = 0;
request.KeepAlive = false;
using (WebResponse response = request.GetResponse())
{
using (Stream dataStream = response.GetResponseStream())
{
_LateroomsXml.Load(dataStream);
}
}
同样,此问题仅发生在我们的实时服务器上。经过数小时的调试和谷歌搜索,我还没有接近解决这个问题。
对此的任何帮助将不胜感激!
【问题讨论】:
-
live box 分配了哪些虚拟内存——我曾经遇到过一个非常类似的问题,原因是虚拟内存不足,即使服务器本身有足够的标准内存
-
分配给它的内存是 4gb,目前它只以 2gb 运行。我认为这也可能是问题,但似乎不是。
标签: c# asp.net .net httpwebrequest socketexception