私のweb sevicesはflex/flashクライアントをサポートしていますが、手渡されない例外が発生した場合、System.ServiceModel.FaultExceptionを拡張するカスタムフォールトを投げます。asmx WebサービスからHTTPレスポンスコードをオーバーライドする必要があります
私は、HTTPレスポンスコードがこれはフレックス/フラッシュバグとして文書化されて200と異なっている場合は、フレックス/フラッシュがこれらのカスタム障害を読み取ることができないことが通知されています:http://bugs.adobe.com/jira/browse/SDK-11841
私は、HTTPを無効にする必要があります未処理の例外が発生した場合にコードを返します。私は、Global.asaxのこのコード(このハックは、回避策として文書化されている)を含むことによってこれを行うことを試みてきた:
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
if (Response.StatusCode != 200)
{ // fix response code for flex
Response.StatusCode = 200;
}
}
protected void Application_PreSendRequestHeaders(object sender, EventArgs e)
{
if (Response.StatusCode != 200)
{ // fix response code for flex
Response.StatusCode = 200;
}
}
しかし、悲しいかな未処理の例外があるとき、私のHTTP戻りコードが500として戻ってきます遭遇しました
アイデア?
この行をApplication_PreSendRequestHeaders()とApplication_EndRequest()の両方に追加しました。 障害コードではリターンコードはまだ500です。 このコード(ServiceLayerプロジェクトのglobal.asax)が実行されていない可能性がありますか? –
エラーをクリアするには、Application_Errorを実際にオーバーライドする必要があります。また、トラップしようとしているエラーの後にページに他のエラーが発生していないことを確認してください。 – jellomonkey