我使用C#在Windows服务中托管了一个WCF服务。它工作正常,我能够从客户端应用程序与WCF服务进行通信。
但问题是如果我让客户端闲置10分钟左右再尝试再次连接,我会收到以下错误
服务器堆栈跟踪:
在System.ServiceModel.Channels.CommunicationObject.ThrowIfDisposedOrNotOpen()
在System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway,ProxyOperationRuntime操作,Object [] ins, 对象[]出局,TimeSpan超时)
答案 0 :(得分:0)
Windows服务不是关闭的,它是您的客户端代理。
你说你让客户闲置了。你不应该这样做。提出请求后,您应该关闭客户端。然后在需要时打开它。
答案 1 :(得分:0)
当您的服务绑定ReceiveTimeout设置保留为默认值(10分钟)时,会发生这种情况。
要将此设置为" forever",您可以在配置文件中设置:
ReceiveTimeout = "infinite"
或代码:
binding.ReceiveTimeout = TimeSpan.MaxValue;