16

这是我的 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 和域限制”。如果我遗漏了什么,请告诉我。谢谢你。

4

7 回答 7

40

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

修理:

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

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

希望这对其他人有帮助。

于 2013-04-29T23:57:14.950 回答
21

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

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

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

于 2015-11-14T16:14:51.533 回答
11

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

更改此行:

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

至:

<section name="ipSecurity" overrideModeDefault="Allow" />
于 2015-04-30T14:35:52.713 回答
7

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

请参阅有关该错误消息的这篇文章,因为您可能没有启用该功能委托

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

于 2013-04-26T12:12:36.797 回答
6

在 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>
于 2016-05-05T07:13:48.660 回答
2

希望这会帮助某人...

我在本地 Windows 7 上运行 IIS express 并执行了以下操作 -控制面板 > 程序 > 程序和功能 > 打开或关闭 Windows 功能

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

在此处输入图像描述

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

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

<section name="ipSecurity" overrideModeDefault="Allow" />
于 2015-05-28T15:45:26.953 回答
1

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

于 2013-10-17T23:42:29.487 回答