Я пытаюсь установить параметры проверки подлинности непосредственно на уровне приложения, и IIS, похоже, не принимает его.
Я использую IIS 8.5 на 2012 R2.
Вот что происходит, когда я отключаю все методы аутентификации на уровне сервера (обратите внимание на мой выбор на левой боковой панели):
Результатов, чего я и ожидал:
Теперь, если я снова включу анонимную аутентификацию на уровне сервера и сделаю то же самое на уровне приложения:
Я получаю следующее, что является содержанием моей статической HTML-страницы:
Поэтому, если я отключу все методы аутентификации, он все равно пройдет, чего не должно быть.
Он отлично читает файл web.config, я подтвердил это, вставив в него тарабарщину, и он выдает общую страницу «Произошла ошибка». Я также подтвердил это, проверив монитор процессов, чтобы убедиться, что он читает правильный файл web.config.
То же самое происходит, когда я пытаюсь настроить ведение журнала неудачных запросов. На уровне приложения ничего не регистрируется, но на уровне сервера я получаю журнал, в котором немного. Если я включу в приложении только проверку подлинности Windows (без анонимности), я вижу в журнале неудачных запросов, что оно не пытается делать ничего, кроме анонимной проверки подлинности.
Я попытался переустановить IIS с помощью мастеров удаления / добавления ролей, но все равно не пошел.
Кто-нибудь знает, что я могу попробовать дальше?
Оказалось, что наш сценарий установки IIS включал следующее:
Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.applicationHost/applicationPools/applicationPoolDefaults" -Name "enableConfigurationOverride" -Value "False"
Что существенно меняет настройку по умолчанию для все пулы приложений это отключило любое переопределение конфигурации. По сути, это отключило возможность использования web.config файлы на наших сайтах.
Это определенно сработает. Я ничего не видел в пользовательском интерфейсе для enableConfigurationOverride
вариант.
Поэтому я просто запустил в Powershell следующее, чтобы исправить проблему:
Set-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "system.applicationHost/applicationPools/applicationPoolDefaults" -Name "enableConfigurationOverride" -Value "True"