2011-01-25 5 views
2

私はSoapExceptionを使用して、無効な入力とその他の種類の例外処理をWebサービスで処理しています。それは正常に動作していると私はフォーマットし、クライアントに適切な情報を返すことができます。 (:500内部サーバーエラーにResponseCode)私は1と同様の方法でhttp://www.codinghorror.com/blog/2004/08/throwing-better-soap-exceptions.htmlSOAPExceptionの変更方法ResponseCode

は、今私はSoapExceptionが発生したときに、それが返すレスポンスコードを変更したいここで説明し、次のい。

SoapExceptionが発生したときのデフォルトの応答コードは、自分のカスタムXMLのデータに加えて次のようになります。私はResponseCodeを200に変更したいと思います。それは可能でしょうか?

500内部サーバーエラー 『HTTPステータスコード「R1126 INSTANCEが使用しなければならない』場合の応答メッセージ:WS-I基本プロファイルに応じて上記の警告のジョンSaudersという言葉を支持して

ResponseCode: 500 (Internal Server Error) 
Connection:Close 
Content-Length:494 
Cache-Control:private 
Content-Type:text/xml; charset=utf-8 
Date:Tue, 25 Jan 2011 06:59:30 GMT 
Server:ASP.NET Development Server/8.0.0.0 
X-AspNet-Version:2.0.50727 
+0

答え((System.Web.HttpContext)(System.Runtime.Remoting.Messaging.CallContext.HostContext))を見出さResponse.StatusCode = 200。 –

+2

@Ariz:あなたが選んだ解決策なら、あなたはSOAP標準に違反することを選択しました。コードは500である必要があります。 –

+0

一部のブラウザでは、WebMethodを使用しているFlashに例外コンテンツを転送しないため、statusCodeを200に変更したいと考えています。 '((System.Web.HttpContext)(System.Runtime.Remoting.Messaging.CallContext.HostCont ext))。Response.StatusCode = 200;新しいSoapException()をスローします;はまだ応答コード500を返します – Smalcat

答えて