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

Это моя паутина.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 и доменов " установлены на сервере. Пожалуйста, дайте мне знать, если я что-то упускаю. Благодарить вы.

7 ответов


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

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

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


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

Исправления:

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

  • в IIS 7 Нажмите на корневой сервер
  • дважды щелкните делегирование функций (под управлением)
  • прокрутите вниз до IPv4-адреса и ограничений домена
    • изменить делегацию на Чтение / запись (в моем случае это было только чтение, что и было проблемой)

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


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

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

Если вы редактируете только ApplicationHost.конфигурация, расположенная в папке Documents\IISExpress, это не повлияет на существующее приложение (mvc5 appl в моем случае).


открыть applicationHost.config файл (находится по адресу папке%WINDIR%\System32 и\inetsrv\конфиг\файл applicationhost.config) и редактирование ipSecurity.

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

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

в:

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

попробуйте эту внешнюю систему.Сервер тег

<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>

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


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

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

на Компоненты Windows диалоговое обеспечить IP Security проверил:

enter image description here

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

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

до

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