1

net.tcp 経由で接続している二重 WCF サービスがあります。サービスが最初に起動すると、サービスを呼び出してコールバックを正常に受信できますが、数分後にサービスからこのエラーが発生し始めます。

データの送信中に TCP エラー (995: スレッドの終了またはアプリケーションの要求により、I/O 操作が中止されました) が発生しました。

IIS と Windows サービスでサービスをホストしようとしましたが、両方で同じエラーが発生します。トレース ログを見ると、例外の直前に SocketConnection の中止の警告が表示されます。

これは何が原因ですか?

hereから取得したサービスの加入者を追跡するために使用している方法。必要に応じて設定を投稿できますが、そうでない場合は質問を混乱させたくありませんでした。

4

1 に答える 1

1

2 つの側面があります。

  1. 例外が発生した理由

この投稿が役立つかもしれません(要するに、彼の状況ではアンチウイルスがエラーの原因でした)

  1. 接続とクライアントのコールバックで何が起こるか - Fault によってラップされていない例外は接続を「強制終了」し、クライアントはそれを再利用できず、「中止」エラーを受け取ります。

失敗した呼び出しについてクライアント側でサブスクライブし、接続を再初期化する必要があります。

お気に入り

((IClientChannel)YourClient).Faulted += InnerChannel_Faulted;
}


void InnerChannel_Faulted(object sender, EventArgs e)
{

    TWLogger.Write("Faulted event ... ");
    reconnect();
} 

また、すべてのサーバー側の例外を Fault でラップすることをお勧めします

于 2013-04-16T18:31:47.660 に答える