3

我正在一个有 800 个客户端(详细客户端)的服务器上进行一些 wcf 跟踪,并且我看到在处理操作“ http://tempuri.org/IConnectionRegister/ValidateUriRoute之后很多 SocketConnection 中止。这是在 ** ** 活动期间

我删除(最大化)所有可能的限制(绑定、服务、端口共享(在自定义绑定和 SMSvcHost.exe 上)。仍然有很多随机超时和套接字中止。

0000 活动也绝对满(少于每秒)

  1. “套接字连接已中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或底层网络资源问题造成的。本地套接字超时为 ' 10675199.02:48:05.4775807'。”

  2. “由于线程退出或应用程序请求,I/O 操作已中止”

在确定谁导致连接断开时,任何帮助将不胜感激。

如果有人感兴趣,我还可以上传示例 svc 跟踪。

Socket Connection Abort 的堆栈跟踪

System.ServiceModel.Channels.SocketConnection.Abort() System.ServiceModel.Channels.TracingConnection.Abort() System.ServiceModel.Channels.InitialServerConnectionReader.Abort() System.ServiceModel.Channels.ServerSessionPreambleConnectionReader.OnValidate()

……

System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame() System.Runtime.AsyncResult.Complete() System.ServiceModel.Channels.TransportDuplexSessionChannel.TryReceiveAsyncResult.OnReceive() System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame() System.Runtime.AsyncResult。 Complete() System.ServiceModel.Channels.SynchronizedMessageSource.ReceiveAsyncResult.OnReceiveComplete()

<customBinding>
    <binding name="externalRoutingcustomBinding">
      <binaryMessageEncoding>

      </binaryMessageEncoding>

      <security
          authenticationMode="UserNameOverTransport"
          allowInsecureTransport="true"
          enableUnsecuredResponse="true"
          >
      </security><tcpTransport> 
        <connectionPoolSettings groupName = "default" maxOutboundConnectionsPerEndpoint = "1000"/> 
      </tcpTransport> 

      </binding>


  <service name="ZPRoutingWorkflow.ZpRoutingService">
<endpoint address="Transactions" binding="customBinding" bindingConfiguration="externalRoutingcustomBinding"
 name="Transactions" contract="TopUpInterface.ITransactionsService">
    <identity>
        <dns value="appserver.test.com" />
    </identity>
 </endpoint>

    <endpoint address="Retry" binding="customBinding" bindingConfiguration="externalRoutingcustomBinding" name="Retry" contract="IRetryInterface.IRetryService">
    <identity>
        <dns value="appserver.test.com" />
    </identity>
 </endpoint>

配置总结:

在 iis 中托管的同一端口上的多个 net.tcp 服务。其中一项服务是实现 IRequestReplyRouter 的路由服务。基本上所有消息都通过路由器,路由器在内部连接到服务并将消息传递给它们

4

0 回答 0