我在一个非常简单的WCF服务中遇到了一个奇怪的问题,该服务正常运行。该服务是一个只有一个操作和响应的Web服务,BasicHttpBinding和所有超时(接收,发送,连接,打开...)设置为10秒。突然有一天开始变得很慢(主要是网络问题),但是超时似乎没有用。
<binding
openTimeout="00:00:10"
closeTimeout="00:00:10"
sendTimeout="00:00:10"
receiveTimeout="00:00:10" />
我试图让这些超时工作,通过使用套接字连接到Web服务,并且不发送任何内容并等待几秒钟,但是连接仅在120秒后断开,因此最终超时不起作用
//connect to the web service
sock.Connect(address, port);
//send something invalid
byte[] buffer = Encoding.Default.GetBytes("hello");
sock.Send(buffer);
//wait to be dropped or something
sock.Receive(buffer);
如果没有收到字节,有没有办法在一定时间后从服务中手动删除连接?
谢谢!
答案 0 :(得分:0)
由于您正在进行HTTP绑定,您确定自己没有被IIS中的连接超时设置捕获吗?默认值为 2分钟。
http://www.iis.net/configreference/system.applicationhost/sites/sitedefaults/limits
指定IIS在断开连接之前等待的时间(以秒为单位) 被视为无效的连接。可以考虑连接 由于以下原因而无效:
对于自托管,这仍然是一个问题。请参阅此主题以获取适当的绑定设置。