17

我有一个包含 2 个 asmx 文件(public.asmx 和 private.asmx)的 Web 服务。在 IIS6 上,我可以转到 private.asmx 的属性,然后从“文件安全”选项卡中,拒绝除 localhost 的 IP 地址之外的所有计算机访问。

在 IIS7 中,我似乎只能对整个文件夹执行此操作。我错过了什么?

4

2 回答 2

28

有趣 - 我发现这个问题是因为我有同样的问题,但我认为解决方案如下:

  1. 在 IIS7 中,浏览到包含 public.asmx 和 private.asmx 文件的目录。
  2. 顶部的标题将反映当前目录,例如“WebService Home”。单击底部的“内容视图”按钮。
  3. 右键单击您的 public.asmx 文件并选择“切换到功能视图”。
  4. 标题应为“public.asmx Home”以确认您正在管理一个文件。
  5. 添加您的 IP 限制。在这种情况下,我认为您需要 127.0.0.1 的允许条目,然后从“操作”菜单中选择“编辑功能设置”以拒绝访问未指定的客户端。
  6. 再次单击包含文件夹(例如 WebService)并再次切换到内容视图以在 private.asmx 上重复这些步骤。

我自己也在学习 IIS7,但我希望这能回答你的问题。

于 2010-04-08T23:33:13.773 回答
6

通过 Google 找到了这个问题,并正在寻找如何通过 .config 文件来解决这个问题,但在这里找不到答案。从那以后,我一直在追踪信息:

IIS7 中的 web.config 使用该ipSecurity元素来限制 IP 地址的访问。你可以像这样使用它:

<configuration>
    <location path="private.asmx">
        <system.webServer>
            <security>
                <ipSecurity>
                    <add ipAddress="192.168.100.1" />
                    <add ipAddress="169.254.0.0" subnetMask="255.255.0.0" />
                </ipSecurity>
            </security>
        </system.webServer>
    </location>
</configuration>

更新:请注意,必须添加角色才能启用此安全性。请参阅ipSecurity上面链接的文章。

于 2012-01-30T18:25:03.723 回答