IIS HTTP错误403.1 - 禁止访问:执行访问被拒绝。

8
我有一个运行在IIS 6 / Windows Server 2003上的ASP.NET 1.1应用程序。 这是我们的应用程序,但我们正在尝试特别复制客户的安装,因此将整个应用程序文件夹从他们的生产服务器复制到我们的测试机器上,然后我们手动为IIS创建了虚拟目录和Web应用程序。
Internet Information Services(IIS)管理器:
- 应用程序池 - 网站
- 默认网站
- xxxxx(虚拟目录)
- yyyyy(Web应用程序)
- Web服务扩展
我遇到的问题是,当我们访问该应用程序时,我们会收到标准的IIS安全错误消息:
The page cannot be displayed
You have attempted to execute a CGI, ISAPI, or other executable program from a directory that does not allow programs to be executed. 
--------------------------------------------------------------------------------

Please try the following:

•Contact the Web site administrator if you believe this directory should allow execute access.
HTTP Error 403.1 - Forbidden: Execute access is denied.
Internet Information Services (IIS)

现在这个情况很普遍,但据我所见,它并不是那么简单。
我已经检查过:
  • IIS用户具有目录的读取访问权限
  • IIS用户和Network Service用户对Temporary ASP.NET Files文件夹具有读/写访问权限
  • 虚拟目录设置为正确版本的ASP.NET
  • 允许ASP.NET 1.1 Web服务扩展
  • 虚拟目录具有文件扩展名的正确映射以及所有动词到aspnet 1.1 DLL的映射
  • 虚拟目录属性允许运行脚本和可执行文件
  • 匿名访问已启用,并且用户名和密码正确
我错过了什么?
2个回答

14

当您在IIS上创建应用程序时,是否检查了“允许脚本执行”?你需要打开前两个选项才能执行来自该应用程序的任何内容,包括您创建的虚拟目录。

右键单击父应用程序 > 主目录选项卡 > 执行权限设置为Scripts only...


1
我认为你的意思是,如果Web应用程序(yyyyy)比虚拟目录(xxxxx)低一个级别,则每个属性都应单独设置为允许脚本执行? 事实证明,在这种情况下,较低级别(yyyyy)不会覆盖较高级别(xxxxx),因此问题得到解决。 - Coxy
可能是上级未覆盖或上级设置为不执行脚本... 我无法看到您的IIS设置,但当脚本无法执行时,这是需要查找的第一件事... - eugeneK
我刚在静态网站上遇到了这个问题。启用默认内容页面(例如index.htm)的机制似乎需要授予此权限才能正常运行。我本以为用户界面会处理这个问题。我想是时候退役旧的IIS 6服务器了! - MarkHone
谢谢Eugene。这也帮助了我处理一个旧系统。 - user153923

8
您可能还需要检查处理程序映射设置右侧窗格上的“编辑功能权限...”按钮,并启用“执行”。这就是让我和我的同事们花了3个小时解决问题的原因,即使我们的症状非常相似。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接