NetTcpBind​ing の TCPポート共有を有​効にしているとトレー​スファイルに大量の警​告とエラーが出力され​る

WCF を使っているアプリをデバッグしていて、WCFトーレス機能を ON にしていると、 クライアント側のトレースファイルに大量の警告とエラーが出力されていた。

f:id:griefworker:20130607155150p:plain

アプリは一見普通に動いていたから、今の今まで気づかなかった。なんという悪夢。

2日ほど調べたんで、分かったことをメモしておく。

  • NetTcpBinding を使っていると警告とエラーが出力される
  • NetNamedPipeBinding を使っている場合は出力されない
  • NetTcpBinding のタイムアウトや通信データ量などの設定を MAX 値にしていても出力される
  • どうも、NetTcpBinding のポート共有を有効にしていると出力される
  • ポート共有を OFF にすると出力されない
  • NetTcpBinding のポート共有を有効にしていると SMSvcHost.exe がソケットを管理するようになる
  • SMSvcHost は NetTcpBinding の構成を反映してくれない
  • 2 つのエンドポイントにそれぞれ 5 スレッドからアクセスしたあたりから出力された

SMSvcHost の同時接続数エラーあたりが怪しい。SMSvcHost.exe.config を変更するしかないかも。