9

WCF サービスの使用中に CommunicationException が発生します。メッセージは次のとおりです。

リモート エンドポイントは、このシーケンスを認識しなくなります。これは、リモート エンドポイントでの中止が原因である可能性が最も高いです。wsrm:Identifier の値は、既知のシーケンス ID ではありません。信頼できるセッションに障害が発生しました。

コントラクト メソッドが呼び出された直後に例外がスローされます。コントラクト メソッドを呼び出す前は、チャネルの状態は Opened です。この例外をキャッチした後、サービス クライアントを復元すると、しばらくの間正常に動作します。しかし、その後、このエラーが再び発生します。タイムアウトを超えているようですが、どれが正確かわかりません。

私は、reliableSession を有効にして wsHttpBinding を使用しています。InactivityTimeout は 30 分に設定されており、例外が先にスローされるため、それを超えていないと確信しています。

4

4 に答える 4

7

問題を解決しました。その理由は、サーバー側の RecieveTimeout でした。これは 1 分に設定されていたため、1 分間サーバーがチャネルを閉じるために使用されるリクエストがなかった後、クライアントがコントラクトを呼び出そうとすると、タイムアウトのためにチャネルが既にクラッシュしていました。

この記事を読んだ後、解決策を見つけました:

http://msdn.microsoft.com/en-us/library/system.servicemodel.reliablesession.inactivitytimeout.aspx

于 2010-04-16T13:08:51.843 に答える
0

これは、アプリケーション プールがリサイクルされるときに発生します。

サービスのリサイクルについては、このブログの最後のセクションをご覧ください。

于 2010-04-16T12:43:00.767 に答える