IIS 404 пользовательская ошибка

Я уверен, что Вы все знаете о нем, но только для справки оценка на ЦП для SQL Server на сокет - не на ядро.

0
задан 21 December 2009 в 17:58
3 ответа

Для тестирования логики я на самом деле шел посредством полного процесса. Я использовал ETW, прослеживающий для IIS и ASP.NET и Монитора Процесса для наблюдения то, что происходит. Вот то, что я нахожу:

  1. Когда Вы добавляете, что "Подстановочный знак, отображающийся" для aspnet_isapi.dll с ", Проверяет, что файл существует" неконтролируемый, весь запрос на самом деле проходит через конвейер .NET
  2. При доступе к поддельному каталогу .NET на самом деле ищет все .config файлы.. т.е. machine.config, корень web.config (это находится в C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG), и Ваш корневой каталог веб-сайта для поиска возможного HttpHandler, который может обработать запрос
  3. Так как ни один из обработчика не настроен для обработки запроса "каталога", запрос возвращается IISGeneral: GENERAL_STATIC_FILE_HANDLER и сбои с 0x80070002 т.е. FILENOTFOUND
  4. Так как у Вас есть IIS Пользовательская Ошибка 404 настроенных как/404/, это изучает каталог c:\inetpub\wwwroot\404\, сбои с другим 0x80070002 и отправляет дженерик The system cannot find the file specified. ошибка.
  5. Когда Вы получаете доступ к фальшивке main.aspx страница, .aspx запрос обрабатывается в корне web.config файл, и следовательно Вы видите конкретный .NET (Ресурс не может быть найден.) ошибка.

  6. Теперь, когда Вы проверяете, "Проверяют, что файл существует" для "Подстановочного отображения", сервер проверяет, что требуемый сценарий существует прежде, чем отобразить расширение приложения
  7. Следовательно, запрос никогда не проходит через конвейер .NET и дает Вам ошибку, как указано в точке 4.


Надеюсь, это поможет.

1
ответ дан 4 December 2019 в 15:22

Если у Вас есть подстановочный знак, отображающийся без, "проверяют, что файл существует", включил его, отправит запрос к Вашему DLL. Если ASP.Net 2.0 DLL, на который Вам отобразили его, НЕ использует web.config для Вашего приложения (Вы упомянули, что это было для.Net 3.5), затем, это возвратит универсальную ошибку. Если Вы включаете, "проверяют, что файл существует" опция IIS, будет видеть, что папка не там, и используйте ее внутренние ошибочные настройки вместо этого (который, как Вы сказали, совпадают с тем, что находится в web.config). Возможно, попытайтесь включить ту опцию видеть, помогает ли в Вашей ситуации.

0
ответ дан 4 December 2019 в 15:22

Для IIS 5.0 удачный путь:

Свойства> Домашняя директория> Расширенная конфигурация: выберите нужное расширение файла и установите флажок «Проверить наличие файла».

1
ответ дан 4 December 2019 в 15:22

Теги

Похожие вопросы