0

ねえ、私はWCFを介して例外を処理するためにOleg Sychのソリューションを使用しています: リンク

すべてが既知の例外(InvalidOperationExceptionやSystemExceptionなど)で正常に機能しますが、独自のカスタム例外を使用しようとすると機能せず、次のwcf例外が発生します:「パイプからの読み取り中にエラーが発生しました:パイプは終了しました。(109、0x6d)」

これは私のカスタム例外です:

[KnownType(typeof(SessionExpiredException))]
[global::System.Serializable]
[DataContract]
public class SessionExpiredException : Exception
{
    public SessionExpiredException() { }
    public SessionExpiredException(string message) : base(message) { }
    public SessionExpiredException(string message, Exception inner) : base(message, inner) { }
    protected SessionExpiredException(
      System.Runtime.Serialization.SerializationInfo info,
      System.Runtime.Serialization.StreamingContext context)
        : base(info, context) { }
}

私は何が間違っているのですか?属性がありませんか?

4

2 に答える 2

0

カスタム エラーを例外としてモデル化する必要はありませんが、返そうとする情報の DataMembers を持つ DataContract としてモデル化する必要があります。次に、WCF サービスで、タイプの FaultException を返すだけです。

このページには、それをモデル化する方法の良いサンプルがあります: http://msdn.microsoft.com/en-us/library/ms752208.aspx

于 2012-12-20T22:06:10.463 に答える