2つのエンドポイントを公開するWCFサービスがあります。 1つはWebHttpBinding
(モバイルクライアント用のRESTサービスとして機能する)とNetTcpBinding
(デスクトップ.NETクライアント用)の1つWCFサービスで、戻り値に応じてHttpStatusCodeを変更します。
サービスメソッドGetData
にクライアントがアクセスしたとします。データがない場合、私は 'ヌル'(または、何が呼び出されたかによってはfalse
または'0 ')を返します。クライアントがWebHttpBinding
-endpointにアクセスするモバイルクライアントの場合は、HttpStatusCode
をOK以外のものに変更したいと思います。
これを実行し、私のサービス実装を一般的に保つ方法はありますか(http固有のコードを入れないでください)? IDispatchMessageInspector
を使用してメッセージを傍受し、ステータスコードを変更することができ、WebHttpBinding
エンドポイントでのみ行うことができますが、次にステータスコードを変更するものはわかりません。
Isどのように私がこれを解決することができるかについての提案を持っている人は誰ですか?
更新:
私は本当に私が実際に本当に際に間違ったサービスの実装であるものを知っている唯一の場所以来、良い方法でこれを行う方法はありませんことを考え始めています。
私の意見では、HttpStatusCodeはHTTP送信のステータスのみを反映し、コンテンツは処理しません。 – Filburt
ステータスコードを変更する時期を決定するルールはありますか?つまり、戻り値がnull/0/falseの場合、**常に**変更しますか?それとも、操作に依存するものなのでしょうか? – carlosfigueira
@Filburt、私はあなたに同意していますが、移動クライアントを開発している人から、彼らが望んでいたデータを入手できなかった理由を知りたいという要求です。 – Joel