0

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

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

服务器堆栈跟踪:
在 System.ServiceModel.Channels.CommunicationObject.ThrowIfDisposedOrNotOpen()
在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)

4

2 回答 2

0

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

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

于 2012-05-15T14:45:40.513 回答
0

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

要将其设置为“永远”,您可以在配置文件中设置:

ReceiveTimeout = "infinite"

或通过代码:

binding.ReceiveTimeout = TimeSpan.MaxValue;
于 2015-07-09T15:10:29.877 回答