2

有一个讨厌的问题让我睡不着觉。我们有一个 ASP.NET 网站和为该网站提供服务的 WCF 服务器。一段时间后,出现错误提示

无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满 xxxx:8731 in

System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) System.Net.Sockets.Socket.Connect(EndPoint remoteEP) System.ServiceModel.Channels.SocketConnectionInitiator.Connect(Uri uri, TimeSpan 超时)

之后我们的网站无法连接到服务。

此捆绑包(站点+服务)在 Windows Server 2003 上运行良好,但随后我们将其移至新的 Windows Server 2008 标准,一段时间后它会失败。

我们的服务中有一些 tcp 检查。服务只是打开与另一台主机的连接,如果连接成功,服务认为一切正常并继续执行其他业务逻辑。当我们切断此检查时,似乎服务器开始很少下降,但这个错误仍然让我们感到沮丧。

我曾经遇到过MaxUserPort在注册表中安排选项的可能建议,但似乎Win2008中的此参数与Win2003中的含义不同,并且可以。

4

0 回答 0