перезаписать корневой файл web.config для включения тега customerrors - PullRequest
1 голос
/ 22 апреля 2009

У меня есть ситуация, когда я хочу отловить 404 ошибки, вызванные HTML-страницами (не только aspx-страницами), но у меня есть доступ только к web.config корневой папки моего веб-сайта и всем подкаталогам (обратите внимание, у меня нет доступа к серверу IIS, и я не могу создавать приложения или изменять настройки)

Итак, я попробовал клиентские ошибки web.config в подкаталоге, и они работают, только для страниц ASPX, а не для страниц HTML, кто-нибудь знает почему?

Ответы [ 4 ]

2 голосов
/ 22 апреля 2009

Обратите внимание, что два ответа выше верны для обычного случая. Однако IIS 6.0 и ниже можно настроить для обработки HTML-страниц или чего-либо еще через ASP.NET. Кроме того, IIS 7 радикально изменил ситуацию - фактически конвейер ASP.NET теперь является конвейером IIS, так что любой фрагмент контента обрабатывается через любые HttpModules.

Таким образом, в IIS 7 и выше все, что вы можете настроить для страниц ASPX, можно настроить для страниц HTML.

0 голосов
/ 22 апреля 2009

Чтобы быть немного более конкретным, чем то, что сказал Джереми, IIS отображает различные расширения файлов на разные исполняемые файлы. По умолчанию он настроен так, чтобы среда .NET могла обрабатывать файлы .aspx (в этом случае ваш web.config будет загружен и использован), но он будет обслуживать сами страницы .html (и, следовательно, использовать свои собственные 404 обработка ошибок).

Раздражает, но я не думаю, что есть что-то, что вы можете сделать, помимо контроля IIS или превращения ваших плоских html-страниц в aspx-страницы (даже если они не содержат реального содержимого на стороне сервера), чтобы обмануть IIS в позволяя .NET справиться с ними.

0 голосов
/ 22 апреля 2009

Вы можете взглянуть на новые возможности маршрутизации для ASP.NET: http://msdn.microsoft.com/en-us/library/cc668201.aspx.

0 голосов
/ 22 апреля 2009

HTML-страницы не анализируются IIS, поэтому настройки web.config не затрагиваются. Я не знаю, как обойти это без настройки параметров в IIS.

...