800 のクライアント (冗長クライアント) を持つサーバーで wcf トレースを行っていますが、 Process アクション ' http://tempuri.org/IConnectionRegister/ValidateUriRoute 'の後に多数の SocketConnection が中止されていることがわかります。これは ** ** 活動中です
可能なすべてのスロットリング (バインディング、サービス、ポート共有 (カスタム バインディングと SMSvcHost.exe の両方)) を削除 (最大化) しました。
また、0000 アクティビティは絶対にいっぱいです (毎秒未満)。
「ソケット接続が中止されました。これは、メッセージの処理中にエラーが発生したか、リモート ホストが受信タイムアウトを超過したか、基になるネットワーク リソースの問題が原因である可能性があります。ローカル ソケットのタイムアウトは ' 10675199.02:48:05.4775807'でした。」
「スレッドの終了またはアプリケーションの要求により、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. 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 サービス。サービスの 1 つは、IRequestReplyRouter を実装するルーティング サービスです。基本的にすべてのメッセージはルーターを通過し、ルーターは内部的にサービスに接続してメッセージを渡します。