Azure web.config 限制 IP 地址页面刷新异常

Azure web.config restricting IP Addresses page refresh exception

我正在尝试将对 Azure 网站的访问限制为某些 IP 地址。
它主要是一个 PHP 5.4 站点,但我使用 web.config 到 allow/restrict 访问。
目前它拒绝除列出的 IP 之外的所有人,但是,当页面首次从允许的 IP 地址加载时,它总是首先显示异常:

The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

如果随后刷新页面,它会将页面作为 normal/expected 交付给用户。每当首次打开浏览器(Chrome 或 Firefox)或关闭网页然后在很长一段时间后再次访问时,似乎都会发生异常。

web.config在根目录下,目前还没有其他认证。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>
  <security>
   <ipSecurity allowUnlisted="false" denyAction="NotFound">
     <clear/>
     <add allowed="true" ipAddress="XX.XX.XXX.XXX" />
    </ipSecurity>
   </security>
  </system.webServer>
</configuration>

我没有发现您的 Web.config 文件有任何问题。可能发生的情况是浏览器正在缓存主页。因此,当您刷新页面时,它会正确加载。

Azure 支持人员回复我说这是一个错误,将在未来的更新中修复。

However, there is also a fix -> switching the site to be in 'Always On' mode

这要求网站使用基本/标准层级,即您不能在免费层级中使用 'always on'。

好吧,希望您仍然可以使用免费层使其正常工作...一旦他们修复了错误:)

这部分现在可以在云服务配置文件(.cscfg)中配置。

<NetworkConfiguration>
    <AccessControls>
        <AccessControl name="test">
            <Rule action="permit" description="test" order="100" remoteSubnet="xxx.xxx.xxx.xxx/32" />
            <Rule action="deny" description="test" order="200" remoteSubnet="0.0.0.0/0" />
        </AccessControl>
    </AccessControls>
    <EndpointAcls>
        <EndpointAcl role="WebRoleName" endPoint="Endpoint1" accessControl="test" />
    </EndpointAcls>
</NetworkConfiguration>

首先添加您要允许的 IP 地址,然后拒绝所有其他地址。 在 EndpointAcls 中,我们指定在 ServiceDefinition.csdef 文件中列出的端点。并将端点连接到新创建的 AccessControl。