web.config ipSecurity的内部服务器错误

时间:2013-04-25 17:12:24

标签: asp.net iis web-config

这是我的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和域限制”。 如果我遗失任何东西,请告诉我。 谢谢。

7 个答案:

答案 0 :(得分:29)

对于遇到此问题的其他人。问题的原因是功能委派不允许该功能由web.config管理。

修复:

验证是否为web.config管理启用了功能

  • 在IIS 7中,单击根服务器
  • 双击功能委派(管理下)
  • 向下滚动到IPv4地址和域限制
    • 将委派更改为读/写(在我的情况下,它是只读,这是问题)

希望这有助于其他人。

答案 1 :(得分:19)

对于Windows 10和Visual Studio 2015,请注意ApplicationHost.config文件已重定位到项目文件夹层次结构中的.vs \ config文件夹。您需要编辑在那里找到的ApplicationHost.config 文件的项目特定版本...

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

如果您只编辑Documents \ IISExpress文件夹中的ApplicationHost.config,这不会影响您现有的应用程序(在我的情况下是MVC5应用程序)。

答案 2 :(得分:10)

打开 applicationHost.config 文件(位于%windir%\ system32 \ inetsrv \ config \ applicationHost.config )并编辑 ipSecurity 部分。

更改此行:

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

要:

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

答案 3 :(得分:6)

您是手动编辑配置还是通过IIS管理器编辑?

有关该错误消息,请参阅此帖子,因为您可能没有启用功能委派

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

答案 4 :(得分:4)

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

答案 5 :(得分:1)

不要忘记自定义网站委派。这允许您仅允许委派到您想要的站点。

答案 6 :(得分:1)

希望这会有所帮助...

我在Windows 7上运行IIS express并执行以下操作 - 控制面板&gt;节目&gt;节目和特征&gt;打开或关闭Windows功能

Windows功能对话框中,确保选中 IP安全选项:

enter image description here

我还必须打开applicationhost.config(在%userprofile%\ Documents \ IISExpress \ config 下)并更改以下内容:

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

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