NetTCPバインディングを使用するWCFサービスを作成しました。WCFサービスクライアントのクラッシュをキャッチできません
私のサービスはクライアントからアクセスされ、そのコールバックチャネルを保存し、それを後でクライアントに呼び出すために使用します(これは永続的なtcp接続です)。すべてうまくいきますが、突然クライアントを殺すことに決めたら、私は( "既存の接続はリモートホストによって強制的に閉じられました")SocketExceptionを取得します。
何を試しましたか?
は、私は、コールバックチャネルを使用して、すべての方法でのtry-catch節を追加し、さらに上のレベルできました - WCFHost私のサービスを開始します。
は、私は、チャネルと、コールバックチャネルの両方を取得し、チャネル障害が発生したイベントの処理方法追加しようとしました:要するに
var channel = OperationContext.Current.Channel; channel.Faulted += ChannelFaulted; var callbackChannel = OperationContext.Current.GetCallbackChannel<CallbackInterface>(); var comObj = callbackChannel as ICommunicationObject; comObj.Faulted += ChannelFaulted;
を、私はによってスローされた例外を処理しようとしていますクライアント - サーバー側。例外処理をサポートするWCFサービスのための2つの方法があります
ありがとうございますが、私の問題は私が例外をキャッチすることができないため、チャンネルを中止または閉じることができません。 Visual Studioで見ることができる例外がありますが、コード内のどの行にもリンクされておらず、try-catch節はどれもそれをキャッチしません。 –
もっとコードを提供できますか? –