2009-08-27 22 views
5

私はwcfサービスを持っています。サービス自体(ServiceContractを継承するクラス)には、例外をスローするコンストラクタがあります。サービスが失敗した場合、ユーザーにメッセージを提示したい。私はサービスメソッドのように私は失敗を使用すべきですか?WCFサービスのコンストラクタはエラー処理にフォルトを使用する必要がありますか?

+2

WCFサービスに失敗するコンストラクタがあるのはなぜですか?そして、正直言って...それはなぜコンストラクタを持っていますか? WCFは、コンストラクタを使用して問題を尋ねるだけで、特に例外をスローすることができる場合に、サービスインスタンスを作成して破棄することができます。 – jrista

答えて

2

障害は、通常、サービス境界を越えてエラー情報を提供することを意図しており、ほとんどの場合、誤った形式のメッセージまたは無効な要求メッセージへの応答として障害が送信されます。それを考えると、ここでは不具合は理にかなっていないと言います。

サービスクラスのコンストラクタが例外をスローするのを避けるべきであるという上記のコメントに同意します。サービスのセッションが充実している場合は、特定のサービス操作の結果としてこのタイプの初期化を行う設計を検討することができます。これは、WCFで[OperationContract]属性に "IsInitiating = true"というサービス操作をマークすることで実行できます。その時点で、となり、フォールトを生成し、意図したクライアントに到達することができます。

関連する問題