在一个工作正常的非常简单的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);在没有接收到字节的情况下,是否有任何方法可以在一定时间后手动从服务中删除连接?
谢谢!
发布于 2014-03-26 22:51:17
由于您正在执行HTTP绑定,您确定没有被IIS中的连接超时设置所捕获吗?默认情况是2分钟。
http://www.iis.net/configreference/system.applicationhost/sites/sitedefaults/limits
指定IIS在断开被视为不活动的连接之前等待的时间(以秒为单位)。由于下列原因,连接可被视为不活动:
对于自我托管来说,这仍然是一个问题。有关适当的绑定设置,请参阅此线程。
https://stackoverflow.com/questions/22672266
复制相似问题