我们有一个名为 的服务器slc-app-01
,以及一个配置为 的默认网站中的 ASP.NET 应用程序printflow
。我在 DNS 中设置了一个 CNAMEprintflow
指向 ,以便slc-app-01
可以通过 访问该应用程序http://printflow/printflow
。
问题是,当通过该应用程序访问时,http://printflow/printflow
它会返回:
403.1 禁止访问:执行访问被拒绝。
但通过访问时,http://slc-app-01/printflow
它可以正常工作。
一年多来,这一直运行良好。我认为我们最近唯一改变的是安装 .NET 4.0 并使用 IIS 注册 ASP.NET 4.0。但是,该应用程序仍配置为 .NET 2.0,并且我们为 4.0 应用程序创建了一个单独的 AppPool。
谢谢你的帮助。
答案1
您是否已将“printflow”添加到 IIS 中网站的主机头中?
答案2
您可以检查以下事项:
- 当您尝试访问服务器时是否涉及 Web 代理?您是否需要针对该主机标头进行配置?
- 当您执行 nslookup printflow 时会发生什么?它能解析到正确的 IP 地址吗?
- 您是否检查过该网站的 http 绑定?它是否接受“printflow”http 主机标头?
答案3
最终发现是 HOST Header 问题。有人将某个网站配置printflow
为 hostheader,并窃取了所有请求。由于这个恶意网站的“执行权限”配置为“无”,因此即使该网站没有任何文件,它也会针对“*.aspx、asmx 等...”抛出 403.1 而不是 404。