WCF 连接未正确中止/远程主机强制关闭了现有连接



我有一个使用WCF服务的Windows应用程序。它有一些 WCF 服务调用,并且之后始终调用ClientBase.Close()方法。当我关闭应用程序时,我在VS2010中没有任何错误。我已经在调试器中打开了所有异常,并将我的编译器附加到我能做的所有事情上。我正在关闭所有连接,并且在关闭应用时没有 WCF 服务调用异步运行。

但我确实在 WCF 服务上得到了一个例外!

套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时,或基础网络资源问题引起的。本地套接字超时是(这里有一些大数字(。

错误代码为10054

而内心的例外是:

远程主机强行关闭了现有连接。

但是我的代码怎么会发生这种情况呢?

我该怎么做才能找到这种错误行为的原因?

增加ChannelInitializationTimeout

在 初始读取。此数据在进行身份验证之前收到。

默认值为 5 秒。这是导致"远程主机强行关闭现有连接"异常的原因。

在服务器上打开 WCF 跟踪,使用 WCF 跟踪查看器查看结果,确保应用程序池有权使用服务目录...

<system.diagnostics>
<sources>
  <source name="System.ServiceModel" 
          switchValue="Verbose" 
          propagateActivity="true">
    <listeners>
      <add name="traceListener" 
           type="System.Diagnostics.XmlWriterTraceListener" 
           initializeData="Events.evt"  />
    </listeners>
  </source>
</sources>
<trace autoflush="true"/>

最新更新