Вопрос

Я настроил страницу обработчика 404 в web.config, но она работает ТОЛЬКО, если расширение URL-адреса — .aspx (или другое, которое обрабатывается ASP.NET).Я знаю, что могу настроить статическую HTML-страницу в настройках веб-сайта, но мне нужна страница.Есть ли какие-либо возможности назначить страницу обработчика ASPX для всех расширений запросов в IIS?

Это было полезно?

Решение

Прямой вопрос заключался в том, есть ли варианты назначить обработчик ASPX всем расширениям запроса:Да, есть.Я расскажу, как это сделать в ближайшее время.

Во-первых, я думаю, что «скрытый» вопрос (ответ, который вам действительно нужен) заключается в том, существует ли способ перенаправить все ошибки 404 на страницы, отличные от ASPX, ASMX и т. д.Да, есть, и это лучше выберите, решит ли это вашу проблему.

Чтобы перенаправить все 404 в IIS 6, щелкните правой кнопкой мыши корень веб -приложения (будь то собственный сайт или виртуальный каталог на основном сайте) и выберите «Свойства». Оттуда выберите вкладку «Пользовательские ошибки».Найдите в списке 404 и измените его на нужное вам перенаправление.

Теперь, если этого недостаточно (а я очень надеюсь на это), да, вы можете запускать каждую страницу через обработчик ASPX.Однако это обходится довольно дорого с точки зрения эффективности: обработка необработанного HTML/изображений происходит значительно быстрее, чем что-либо динамическое.

Для этого щелкните правой кнопкой мыши корень веб -приложения и выберите «Свойства». Выберите вкладку «Домашний каталог».Нажмите «Конфигурация»; Новое окно появится.Скопируйте путь с одной из страниц ASP.NET, а затем используйте его для карты приложения с подстановочными знаками.

Имейте в виду, опять же, это неверный ответ большую часть времени.Это отрицательно повлияет на вашу производительность и эквивалентно разделке индейки бензопилой.Я настоятельно рекомендую первый вариант, а не этот, если он вам подойдет.

Другие советы

Для информации:

Это одна из нескольких приятных особенностей IIS7 — все страницы маршрутизируются через обработчик, так что вы можете создавать собственные ошибки 404 и — что полезно — безопасность на уровне каталогов и файлов для любой файл (на основе того же материала web.config, что и для файлов asp.net до IIS7).

Таким образом, условно «использовать II7» — это ответ (со временем он станет «ответом») — но, конечно, это не очень практично, если вы не размещаете/размещаетесь на W2k8 (или выше).

Web.config может настраивать страницы ошибок только для страниц, контролируемых его веб-сайтом.Если у вас есть какие-либо другие страницы, находящиеся за пределами приложения ASP.Net, вы настраиваете их обработку в IIS.Там есть опция для настройки страницы 404, где вы можете указать ее на свою пользовательскую страницу.

Единственное, о чем я могу думать, это передать ВСЕ расширения в asp.net.

Таким образом, asp.net обрабатывает все типы файлов, и ваша пользовательская страница ошибок будет работать.

В конфигурации приложения IIS вы можете установить сопоставление подстановочных знаков (".*") со значением C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll.

  1. Вы можете настроить сопоставление подстановочных знаков в IIS (Конфигурация приложения/Сопоставления/Сопоставления подстановочных знаков/ — просто установите aspnet_isapi.dll как исполняемый файл и снимите флажок «Проверить существование файла»), который будет маршрутизировать все входящие запросы в ваше приложение — чтобы вы могли контролировать поведение прямо из него.

  2. Вам не нужно настраивать статическую страницу в настройках приложения IIS.Имхо, вы должны иметь возможность настроить действительный URL-адрес (например./error_handler.aspx) из вашего приложения, которое будет использоваться в качестве целевой страницы в случае конкретной ошибки сервера.

В IIS вы можете установить специальную ошибку для ошибок 404 и направить ее на URL-адрес в свойствах сайта.

Он показывает статический HTML по умолчанию C: Windows help iishelp common 404b.htm

Вы можете изменить его на относительный URL-адрес на своем сайте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top