Я использую службу для получения списка отелей в виде 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);
}
}
Опять же, эта проблема возникает только на нашем действующем сервере. После многих часов отладки и гугления я так и не приблизился к решению этой проблемы.
Любая помощь по этому вопросу будет принята с благодарностью!