Я ограничиваю доступ к определенным папкам в веб-приложении IIS 7.5 на основе IP-адреса. Вот фрагмент из applicationHost.config:
<ipSecurity allowUnlisted="false">
<add ipAddress="172.16.0.0" subnetMask="255.255.0.0" allowed="true" />
</ipSecurity>
Это возвращает 403 запрещенную страницу и работает должным образом. Но я хочу, чтобы вместо этого он возвращал 404 Not Found. Однако когда я пытаюсь выполнить следующий код, я получаю ошибку 500:
<ipSecurity allowUnlisted="false" denyAction="NotFound">
<add ipAddress="172.16.0.0" subnetMask="255.255.0.0" allowed="true" />
</ipSecurity>
Я искал в Google, но не нашел ответа.
Для denyAction
для работы на IIS версии 8.0+; серверу необходимо разрешить делегирование этой настройки отдельным сайтам. На верхнем уровне сервера IIS выберите «Делегирование функций».
Убедитесь, что Ограничения по IP-адресу и домену установлен на Читай пиши.
denyAction
функция была представлена в IIS 8.0; вы используете старую версию, поэтому она всегда будет возвращать код ошибки HTTP 500.
https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/ipsecurity/
Тем не менее, я использую 8.5 и все еще обнаруживаю, что он не работает, и всегда возвращается 500.