質問: WCFルーティングサービスチャネルのシャットダウン エラーメッセージは次のとおりです。 > このチャンネルは出力としてメッセージを送信するために使用できなくなりました > セッションは、サーバーによって開始されたシャットダウンのために自動閉鎖されました。いずれか > 自動クローズを無効にするには、 > DispatchRuntime.AutomaticInputSessionShutdownをfalseに設定するか、考慮する > リモートサーバーでシャットダウンプロトコルを変更してください。 > > WCFルーター(wsHttpBindingまたはBasicHttpBindingからNetTcpBindingへ)へのWebリクエストを作成すると、ルータはWinServiceを要求します。 WinServiceが例外をスローすると、次の要求は上記のエラーメッセージを返します。 WCFルーターによって作成されます。 解決策はありませんでした。 ソリューションなしで同様の問題へのリンク: * WCF通信エラーがランダムに発生する理由を把握することが不可能 * http: //social.msdn.microsoft.com/Forums/en-US/wcf/thread/3f19cdaa-f426-4902-a93a-2654c7f19788/
回答: 私がした作業の解決策は次のとおりです: * **例外をスローせず、FaultExceptionをスローしない** どうやってするか: * WinServiceインターフェースで、応答コードenumを定義します(例)。 > > ``` > [System.CodeDom.Compiler.GeneratedCodeAttribute( "svcutil"、 "3.0.4506.2152")] > [System.SerializableAttribute()] > [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true、Namespace = "blah")] > public enum ErrorCode > { > エラー > } > > ``` > あるいは単に > > ``` > public enum ErrorCode > { > エラー > } > > ``` > * 例外の代わりに、定義されたenumを使ってFaultExceptionをスローする: > 新しいFaultException(ErrorCode.ERROR、新しいFaultReason( "blah")、新しいFaultCode( "Sender")); * それだけです!これで、この例外を生成する要求を送信し、チャネルを閉じません。