最後の瞬間があるとき私は、WCFでクライアントに例外を返すことができますか?

StackOverflow https://stackoverflow.com/questions/561981

質問

のは、私はIInstanceProviderの実装でこれを持っているとしましょう。

public void ReleaseInstance(InstanceContext instanceContext, object instance)
{
    try
    {
        unitOfWork.Commit();
    }
    catch (Exception)
    {
        unitOfWork.Rollback();
        throw;
    }
    finally
    {
        unitOfWork.Dispose();
    }
}

それ投げる; のサービスはそれの仕事をして、クライアントにデータを返し、そのために行われた後、それが呼び出されるので、クライアントに返されることはありません。他にどのように私は例外を返すことができますか?それともこれを行うには良い場所はありますか?

役に立ちましたか?

解決

私はあなたがこれを行うには間違った場所で探していると思います。私はより良い選択がIDispatchMessageInspectorインターフェイスを実装し、(ほとんどの場合、行動を通じて)DispatchRuntime上MessageInspectorsプロパティによって公開されたコレクションにそれを添付することだと思います。

これで、あなたはメッセージが入ってくると外出調べることができ、かつ必要であれば(リターン・メッセージの障害として、あなたの例外が実現される方法である)、それらを変更します。このため、あなただけの例外バブルアップをさせませんが、むしろ、あなたは障害メッセージに変更し、それに戻りメッセージを設定します。

他のヒント

私はあるべきなWCFでの取引と同様に慣れていませんよ。上記のコードでは、クライアントに結果を返しますか?それはロールバックか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top