Условие
Я создал собственную веб-инфраструктуру, которая перехватывает ошибку 404 и отображает соответствующее содержимое в зависимости от URL-адреса (также отправляет правильный HTTP-код 200 или 404, если URL-адрес действителен или нет).).У меня есть весь фреймворк под одним / Default.asp (который включает в себя несколько файлов, но это не важно здесь).Он отлично работает под IIS6, но я не могу понять, как справиться с отладкой и разработкой под IIS7.
Проблема
Задача состоит в выборе правильного режима ошибок для web.configфайл.Если я установлю errorMode = Custom , тогда мой код работает, и я даже вижу ошибки в своем коде во время разработки, но я не могу отлаживать другие ASP-файлы, потому что любая ошибка там будет перенаправлена на / default.asp вместо того, чтобы показывать его мне в браузере.
Поэтому, когда мне нужно отладить другие ASP-файлы, я бы изменил режим ошибки с Пользовательского на errorMode = Подробный
Тогда я могу легко увидеть номер строки и описание ошибки, но это, очевидно, означает, что мой фреймворк не сможет обрабатывать ошибки 404 для несуществующих URL-адресов.
Iкаждый раз, когда мне нужно что-то проверять, я переключаюсь в "танец" web.config Вот мой web.config файл:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<!-- I'm changing Custom to Detailed here when I need to debug -->
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath=""
path="/Default.asp" responseMode="ExecuteURL" />
<!-- I have experimented with this, but unsuccessfully, so I comment it out
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" prefixLanguageFilePath=""
path="/Default.asp" responseMode="ExecuteURL" />
-->
</httpErrors>
<directoryBrowse enabled="false" />
</system.webServer>
</configuration>
Вопрос:
Можно ли использовать оба метода одновременно?
Пользовательский файл .ASPобработать 404 (и, возможно, другие ошибки), а также оставить 500 ошибок для обработки сервером и отобразить подробную ошибку.
Все, что мне нужно, - это номер строки и описание ошибки.