2

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

但是我确实在 WCF 服务上遇到了异常!

套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时是(这里有一些大数字)。

错误代码是10054

内部的例外是:

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

但是这怎么会发生在我的代码上呢?

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

4

2 回答 2

1

在服务器上打开 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"/>

于 2012-05-03T17:51:58.477 回答
1

增加ChannelInitializationTimeout

在初始读取期间等待连接发送前导的最长时间。此数据在身份验证发生之前被接收。

默认值为 5 秒。这是“远程主机强制关闭现有连接”的原因。例外。

于 2012-05-03T17:42:21.077 回答