为什么在Windows服务中托管的WCF服务在一段时间后死亡

时间:2012-05-15 14:24:14

标签: wcf

我使用C#在Windows服务中托管了一个WCF服务。它工作正常,我能够从客户端应用程序与WCF服务进行通信。

但问题是如果我让客户端闲置10分钟左右再尝试再次连接,我会收到以下错误

  

服务器堆栈跟踪:
  在System.ServiceModel.Channels.CommunicationObject.ThrowIfDisposedOrNotOpen()
  在System.ServiceModel.Channels.ServiceChannel.Call(String action,   Boolean oneway,ProxyOperationRuntime操作,Object [] ins,   对象[]出局,TimeSpan超时)

2 个答案:

答案 0 :(得分:0)

Windows服务不是关闭的,它是您的客户端代理。

你说你让客户闲置了。你不应该这样做。提出请求后,您应该关闭客户端。然后在需要时打开它。

答案 1 :(得分:0)

当您的服务绑定ReceiveTimeout设置保留为默认值(10分钟)时,会发生这种情况。

要将此设置为" forever",您可以在配置文件中设置:

ReceiveTimeout = "infinite"

或代码:

binding.ReceiveTimeout = TimeSpan.MaxValue;