サーバーボックスでWindowsサービスとしてホストされているWCFサービスに対して実行されているGUIクライアントがあります。WCFサービスはPerCallInstanceContextModeで実行されており、クライアントにはサービスクライアントのシングルトンインスタンスがあります。多くの非同期呼び出しの処理が困難になるため、呼び出しごとにシングルトンを再インスタンス化することは避けたいと思います。
私にとっての問題は、Windowsサービスが再起動された後、クライアントが電話をかけるたびに、次のような例外メッセージが表示されることです。
サーバーによって開始されたシャットダウンのために出力セッションが自動的に閉じられたため、このチャネルを使用してメッセージを送信することはできなくなりました。DispatchRuntime.AutomaticInputSessionShutdownをfalseに設定して自動クローズを無効にするか、リモートサーバーでシャットダウンプロトコルを変更することを検討してください。
これを回避するための最良の方法は何ですか?サービスクライアントへのすべての呼び出しの周りにtry-catch句を配置し、通信例外でシングルトンインスタンスを再インスタンス化できますが、これには多くの定型コードが含まれます。