我正在尝试将对Azure网站的访问权限限制为某些IP地址
它主要是PHP 5.4站点,但我使用web.config来允许/限制访问
目前它拒绝除列出的IP之外的所有人,但是,当页面首次从允许的IP地址加载时,它始终首先显示异常:
您要查找的资源已被删除,名称已更改或暂时无法使用。
如果页面随后被刷新,则会将页面正常/预期地传递给用户。只要首次打开浏览器(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>
答案 0 :(得分:0)
我的Web.config
文件没有任何问题。可能发生的事情是浏览器正在缓存主页。因此,当您刷新页面时,它会正确加载。
答案 1 :(得分:0)
Azure支持回复给我,并说这是一个将在未来更新中修复的错误。
然而,还有一个修复 - &gt;将网站切换为“始终开启”模式
这要求网站使用基本/标准层进行站点升级,即您不能在免费套餐中使用“永远在线”。
嗯,希望你仍然可以使用免费套牌让它工作......一旦修复了这个bug:)
答案 2 :(得分:0)
此部分现在可在云服务配置文件(.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。