Я присоединился к команде, разрабатывающей приложение ASP.NET MVC версии 1. Я запускаю это приложение на своем локальном компьютере с помощью IIS версии 7.5. Моя операционная система — Windows Server 2008 R2 Enterprise Edition. Я использую Visual Studio 2008 SP1 для разработки.
Один из контроллеров в этом приложении называется ReportsController. Записи таблицы маршрутов для этого контроллера используют «Отчеты» в качестве части имени контроллера. Моя проблема заключается в том, что, используя IIS 7.5 на моем локальном компьютере, я просто не могу получить доступ ни к одному из методов действия отчетов. Если я попытаюсь получить доступ, скажем, к «/Reports/Index» из Chrome или Firefox, я получу ответ 401 Unauthorized (как показано с помощью Fiddler), и браузер отобразит диалоговое окно ввода имени пользователя/пароля.
Обратите внимание на следующее:
- Все остальные неотчетные страницы в приложении работают корректно.
- Если я добавлю точку останова в Application_BeginRequest, она не сработает при запросе страницы отчетов.
- Если я изменю записи маршрутизации отчетов в регистрационном коде таблицы маршрутов так, чтобы мне нужно было обращаться к путям типа «/Reportss/Index» (обратите внимание на дополнительные «s»), тогда эти страницы отчетов будут работать правильно.
- Я попытался удалить, а затем воссоздать свое веб-приложение в IIS.
- Страницы отчетов работают нормально, если я запускаю приложение с помощью сервера разработки Visual Studio 2008 (Cassini).
- В каталоге приложения нет каталога Reports.
- Страницы отчетов корректно работают в нашей среде UAT, а также в IIS 7.5.
- Я несколько раз пересматривал свои настройки IIS, в том числе сравнивал их с настройками UAT, и не вижу проблемы.
Хотя я могу использовать Cassini для доступа к страницам отчетов, я действительно хотел бы понять, что вызывает эту проблему.