我的Web服务支持flex / flash客户端,并且在unhandeld异常时抛出扩展System.ServiceModel.FaultException的自定义错误。
我被告知如果http响应代码与200不同,flex / flash无法读取这些自定义错误。这被记录为flex / flash bug:http://bugs.adobe.com/jira/browse/SDK-11841
我需要在未处理的异常时覆盖http返回码。我试图通过在global.asax中包含此代码来实现此目的(此hack已被记录为解决方法):
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;
有什么想法吗?
答案 0 :(得分:1)
在更改响应状态代码之前,您可能需要添加以下代码:
HttpContext.Current.ClearError()
这样可以防止您的状态代码更改被覆盖。