Страница 404 в IIS 7.5 с интегрированным конвейером, отлично с классическим конвейером - PullRequest
2 голосов
/ 06 января 2012

Я использую sitecore 6.4 под IIS 7.5, и у меня проблема со следующим URL: http://www.thegreensheet.com/Classifieds/MERCHANDISE/Animals%20Pets%20and%20More.aspx?Id=3191212&city=Houston

Обычно макет отображается нормально, когда IIS работает в классическом режиме, но если я изменяю его на интегрированный, я получаю страницу IIS 404. Действительно странная вещь в том, что он работает как в классическом, так и в интегрированном виде при просмотре с локального сервера. Все остальные наши элементы / макеты работают нормально в IIS 7.5, когда находятся в интегрированном режиме. Все обработчики под тегами httpHandlers и handlers есть ... Я действительно в растерянности ...

Спасибо, Джеймс

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Проблема заключалась в том, что страница ошибочно устанавливала код состояния ответа 404. В классическом режиме IIS отображал содержимое страницы и устанавливал статус 404. В интегрированном режиме он устанавливал код состояния 404, но просмотрите страницу IIS 404. Я нашел это, просматривая журналы IIS и используя Firefox для просмотра кодов ответов в режиме реального времени. Извините, если я впустую потратил время. -Джеймс

1 голос
/ 27 июня 2013

Если вы добавите это

    Response.TrySkipIisCustomErrors = true;

перед установкой

    Response.StatusCode = 404;

, то Sitecore сможет обработать ошибку и все равно вернуть код состояния 404.

Это связано с тем, что на сервере Windows 2008 работает IIS 7.5, который по умолчанию переопределяет ответ HTTP своими страницами ошибок по умолчанию, если страница возвращает код состояния ошибки HTTP, например 404 или 500.

...