【问题标题】:Why WCF Service hosted inside windows service dies after some time为什么托管在 Windows 服务内的 WCF 服务会在一段时间后死掉
【发布时间】:2012-05-23 02:10:04
【问题描述】:

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

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

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

【问题讨论】:

  • 您应该向我们展示准确且完整的异常消息 - 而不仅仅是堆栈跟踪.....

标签: wcf


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    ReceiveTimeout = "infinite"
    

    或通过代码:

    binding.ReceiveTimeout = TimeSpan.MaxValue;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      相关资源
      最近更新 更多