WCFルーティングサービスチャネルのシャットダウン

エラーメッセージは次のとおりです。

このチャンネルは出力としてメッセージを送信するために使用できなくなりました   セッションは、サーバーによって開始されたシャットダウンのために自動閉鎖されました。いずれか   自動クローズを無効にするには、   DispatchRuntime.AutomaticInputSessionShutdownをfalseに設定するか、考慮する   リモートサーバーでシャットダウンプロトコルを変更してください。

WCFルーター(wsHttpBindingまたはBasicHttpBindingからNetTcpBindingへ)へのWebリクエストを作成すると、ルータはWinServiceを要求します。 WinServiceが例外をスローすると、次の要求は上記のエラーメッセージを返します。 WCFルーターによって作成されます。 解決策はありませんでした。

ソリューションなしで同様の問題へのリンク:

2
nl ru de

1 答え

私がした作業の解決策は次のとおりです:

  • 例外をスローせず、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"));

  • それだけです!これで、この例外を生成する要求を送信し、チャネルを閉じません。
2
追加された