Подтвердить что ты не робот

Внутренняя ошибка сервера с web.config ipSecurity

Это мой web.config, у которого есть некоторые теги для блокировки Ipaddress

<configuration>
 <connectionStrings>
    ...
 </connectionStrings>
 <appSettings>
  ....
 </appSettings> 
 <runtime>
   ....
 </runtime>
  <system.webServer>
    <security> 
        <ipSecurity allowUnlisted="false"> 
            <clear/> 
             <add ipAddress="127.0.0.1" allowed="true"/>
             <add ipAddress="83.116.19.53" allowed="true"/> 
        </ipSecurity>  
    </security>
</system.webServer> 
</configuration>

Я намерен заблокировать любой другой IP-адрес, кроме указанного выше. Вышеупомянутый - единственный адрес Ip, с которого я хочу, чтобы сайт был доступен. Но с тегом "ipSecurity" я всегда получаю 500 - Внутренняя ошибка сервера, и сайт работает без него.

Я убедился, что на сервере установлены "IP и ограничения доменов". Пожалуйста, дайте мне знать, если я ничего не пропущу. Спасибо.

4b9b3361

Ответ 1

Вы редактируете конфигурацию вручную или через диспетчер IIS?

См. этот пост об этом сообщении об ошибке, поскольку вы не можете включить функцию делегирования

http://forums.asp.net/t/1220987.aspx

Ответ 2

Для других, которые сталкиваются с этой проблемой. Причиной проблемы является то, что делегирование функций не позволяет управлять этой функцией с помощью web.config.

To Fix:

Убедитесь, что функция включена для управления web.config

  • В IIS 7 щелкните корневой сервер
  • Двойной щелчок Делегирование функций (под управлением)
  • Прокрутите вниз до IPv4 адресов и ограничений домена.
    • Измените делегирование на чтение/запись (в моем случае это было только для чтения, что было проблемой)

Надеюсь, это поможет кому-то еще.

Ответ 3

В Windows 10 и Visual Studio 2015 обратите внимание, что файл ApplicationHost.config был перемещен в папку .vs\config в иерархии папок проекта. Вам нужно будет отредактировать конкретную версию файла ApplicationHost.config, найденную там, где...

<section name="ipSecurity" overrideModeDefault="Allow" />

Если вы только отредактируете ApplicationHost.config, находящийся в папке Documents\IISExpress, это не повлияет на существующее приложение (приложение MVC5 в моем случае).

Ответ 4

Откройте файл applicationHost.config(расположенный в% windir%\system32\inetsrv\config\applicationHost.config) и отредактируйте раздел ipSecurity.

Измените эту строку:

<section name="ipSecurity" overrideModeDefault="Deny" />

To:

<section name="ipSecurity" overrideModeDefault="Allow" />

Ответ 5

Попробуйте использовать этот внешний тег System.Webserver

<location path="Default WebSite">
    <system.webServer>
        <security>
            <ipSecurity allowUnlisted="false">
                <clear/>                 
               <add ipAddress="127.0.0.1" allowed="true"/>
             <add ipAddress="83.116.19.53" allowed="true"/> 
            </ipSecurity>
        </security>
    </system.webServer>
</location>

Ответ 6

Не забывайте о персонализированном делете сайта. Это позволяет вам разрешать делегирование только тем сайтам, которые вы намереваетесь.

Ответ 7

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

Я запускаю IIS express на Windows 7 локально и сделал следующее - Панель управления > Программы > Программы и функции > Включение и выключение функций Windows

В диалоговом окне Windows Features убедитесь, что отмечена опция Безопасность IP:

enter image description here

Мне также пришлось открыть файл applicationhost.config(в файле % userprofile%\Documents\IISExpress\config) и изменить следующее:

<section name="ipSecurity" overrideModeDefault="Deny" />

Для

<section name="ipSecurity" overrideModeDefault="Allow" />