В HttpModule возвращен неверный код HttpStatus - PullRequest
0 голосов
/ 08 апреля 2011

Когда я выполняю поддельный URL, т.е. http://localhost:1166/urldoesnotexist, в моем HttpModule, я получаю response.StatusCode как 200 (ОК). Я ожидал, что он вернется 404 (не найден). Пожалуйста, смотрите код ниже

public class HttpPeformanceMonitorModule : IHttpModule
{      
    public void Init(HttpApplication context)
    {
        context.EndRequest += (sender, e) => TraceRequestEnd(sender, "PageLifeCycleTimer", "Begin - End Request");            
    }

    private void TraceRequestEnd(object sender, string timerKey, string title)
    {
        HttpContext httpContext = ((HttpApplication)sender).Context;

        if (response.StatusCode == 200) //for "http://localhost:1166/urldoesnotexist" I get Status Code  200!!!!
        {
             //do stuff...
        }
    } 

}

Однако, как только ответ был передан в браузер, последний результат, который я вижу на странице - 404 Страница не найдена. - Что правильно

Может кто-нибудь объяснить, почему response.StatusCode возвращает 200 для поддельного URL?

1 Ответ

0 голосов
/ 08 апреля 2011

Каков фактический код состояния, отправленный сервером, например, если вы используете другой инструмент, такой как fiddler.

Многие страницы отправляют 200, когда они должны отправить 404. Вы можете найтимного, выполнив поиск «страница не найдена», хотя в наши дни их стало меньше и больше полезных страниц около 404 страниц (улучшение со стороны поисковых систем, а нечасть среднего сайта).

...