1

WCF で接続が制限されているという問題に直面しました。私の WCF サービスは IIS でホストされ、私の Windows フォーム アプリケーション クライアントは WCF に接続します。Windows_Closed イベントでは、client.Close() メソッドを呼び出して WCF サービスに "I quit" を通知しますが、クライアントがクラッシュした場合、クライアントと WCF サービス間の接続はしばらくの間存在し、10 回のクラッシュをシミュレートしました。その後、私のアプリはもう機能しませんでした。

問題は、WCF とクラッシュしたクライアントの間の接続を解放する方法です。サーバーの maxConnections は制限されており、たとえば 10 に等しいためです。

ありがとうございます!

4

3 に答える 3

2

ReliableSession を使用している場合は、Brijesh が指摘するように InactivityTimeout を使用できます。それ以外の場合は、基本的な WCF タイムアウトを利用する必要があります。

各タイムアウトの実装方法については、 「タイムアウト WCF サービス」を参照してください。

多くの場合、タイムアウトは開発者にとって煩わしいものですが、これがまさにタイムアウトが存在する目的です。

于 2012-07-20T06:02:44.357 に答える
1

Inactivity Timeoutを利用できます。ここで、指定された時間枠内にメッセージを受信しない場合、サーバーは自動的に接続を閉じます。

于 2012-07-20T05:55:21.197 に答える
-1

クライアントでコード ブロックを使用することができます。

using(ClientClass client = new ClientClass){
//Call service here
}

これはあまり信頼できないので、代わりに try-catch-finally を使用することをお勧めします。各 catch ブロックで client.Abort が呼び出されていることを確認してください。

于 2012-07-20T05:02:45.750 に答える