Необходимо переопределить код ответа Http из веб-службы asmx - PullRequest
2 голосов
/ 30 апреля 2009

Мои веб-сервисы поддерживают Flex / Flash-клиенты и, за незапланированными исключениями, генерируют пользовательские ошибки, которые расширяют System.ServiceModel.FaultException.

Мне сообщили, что flex / flash не может прочитать эти пользовательские ошибки, если код ответа http отличается от 200. Это задокументировано как ошибка flex / flash: 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, когда встречается необработанное исключение

Есть идеи?

1 Ответ

1 голос
/ 30 апреля 2009

Возможно, вам потребуется добавить следующий код перед изменением кода состояния ответа:

HttpContext.Current.ClearError()

Это должно предотвратить изменение вашего кода состояния от переопределения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...