IIS6.0でWCFサービスをホストしているサーバーの1つで次の動作が観察されました。
- IISログには、所要時間の値が高いことが示されています(> 100000)
- HTTPステータスコードは200です
- sc-win32-ステータスコードは64の値を示しています
sc-win32-ステータスコード64は、「指定されたネットワークはもう利用できません」を示していることがわかりました。
最初は、MinFileBytesPerSecondに設定された制限が原因である可能性があると考えました。これは、HTTP.sysがクライアントからサーバーにデータを送信し、サーバーからクライアントにデータを送信するときに適用する最小スループットレートを設定します。ただし、sc-bytesとcs-bytesの値は、送信されるデータの量がサービスで一般的に観察される範囲内であることを示しています。
また、WCFサービスは4つのボックスでホストされ、負荷分散されていますが、問題が発生するのは1つのサーバーのみであることに注意してください。(ただし、基本的に同じサーバー上ではありません)。問題も断続的です。
他の誰かがこのエラーに遭遇しましたか?何が間違っている可能性があるかについての手がかりはありますか?
更新
注:IIS 7.5での観察(IISバージョンは実際には重要ではありません)問題
を再現することができました。この問題は、次
の場合に発生します。1.WCFサービスが応答するのに長い時間がかかる
2.サーバーから応答を受信する前にクライアントプロキシがタイムアウトする。この場合、クライアントでTimeoutExceptionが発生します。
3.サーバーは、クライアントのTCP ACKを待機し続けますが、これは決して受信されません。
したがって、長いタイムアウト(TCPソケットタイムアウト(デフォルト値:4分)およびsc-win32-ステータス64)
つまり、基本的に、WCFコードの応答に時間がかかり、クライアントがタイムアウトしているように見えます。IISログで確認したのは単なる症状であり、問題ではありません。