Как использовать собственную страницу asp в качестве страницы ошибки 404 при локальной установке Windows 7 pro IIS 7.5 - PullRequest
0 голосов
/ 23 июня 2011

У меня есть следующая конфигурация:

Работает Windows 7 Pro
Работает локально IIS 7.5 (для целей веб-разработки)

Отредактированный файл hosts для использования http://www.sitestepper.dev

Создание сайта в подпапке из inetpub / wwwroot / staplijst

Сайт можно просматриватьиспользуя http://www.sitestepper.dev/staplijst/whatever-page.htm

У меня есть страница http://www.sitestepper.dev/p.asp, которую я хотел бы вызвать, когда запрашивается неизвестная страница.Этот метод отлично работает на развернутой версии этого веб-сайта (развернутой на сервере Windows 2003 под управлением IIS 6 - не уверен насчет 7, но это версия, развернутая на сервере Windows 2003).

Я пытался (вдиалоговое окно «Редактировать пользовательскую ошибку»):

  • Выполнить URL-адрес на этом сайте: со значением / staplijst / p.asp

и

Я пробовал это в свойствах веб-сайта по умолчанию', и я попробовал это на уровне staplijst.

  • Даже пробовал это со значениями без /staplijst.

I перезапустил веб по умолчаниюсайт после каждого изменения .И даже остановил / запустил веб-сервис.

Но, похоже, ничего не работает, я продолжаю получать сообщение «Ошибка сервера в приложении« ВЕБ-САЙТ ПО УМОЛЧАНИЮ »», Ошибка HTTP 404.0.* Что мне здесь не хватает - возможно, что-то очевидное, но я этого не вижу?

Ответы [ 2 ]

1 голос
/ 25 июня 2011

Чтобы ответить на мой собственный вопрос: мне нужно было установить Error response на Custom error pages на Edit feature settings... соответствующего сайта, чтобы это работало.Было установлено «Подробные ошибки для локальных запросов и пользовательские страницы ошибок для удаленных запросов».

Мне никогда не приходилось делать это в предыдущей версии IIS, но, возможно, в этих версиях это подразумевалось.Или, может быть, из-за настройки хоста www.sitestepper.dev страницы всегда ведут себя как локальные запросы - в любом случае, в IIS 7.5 это изменилось. Я уверен.ответ «Кев».Как правило, я не склонен редактировать конфигурационные файлы напрямую, если решение можно найти с помощью представленных панелей пользовательского интерфейса.

Я приму его ответ как решение.

Custom error pages need to be set to execute an url for 404 errors.

1 голос
/ 24 июня 2011

Я только что настроил следующее, чтобы воспроизвести ваши настройки:

В файле web.config:

<configuration>
    <system.webServer>
        <httpErrors>
            <remove statusCode="404" subStatusCode="-1" />
            <error statusCode="404" 
                   prefixLanguageFilePath="" 
                   path="/p.asp" 
                   responseMode="ExecuteURL" />
        </httpErrors>
    </system.webServer>
</configuration>

В корне сайта у меня есть простой скрипт под названием p.asp, который делает Response.Write "Hello World".

Если я захожу на страницу, которая не существует, p.asp перенаправляется на страницу, и я вижу «Hello World».

Если я использую в своем web.config следующее:

<httpErrors>
    <remove statusCode="404" subStatusCode="-1" />
    <error statusCode="404" 
           prefixLanguageFilePath="" 
           path="http://www.sitestepper.dev/p.asp" 
           responseMode="Redirect" />
</httpErrors>

Это перенаправляет, как ожидается, на p.asp, и снова я вижу "Hello World".

Единственное, что я считаю неправильным, это то, что вы говорите, что p.asp живет в корне сайта: http://www.sitestepper.dev/p.asp, но пути ответа ExecuteURL и Redirect включают /staplijst в пути .

...