【问题标题】:IIS HTTP Error 403.1 - Forbidden: Execute access is deniedIIS HTTP 错误 403.1 - 禁止:执行访问被拒绝
【发布时间】:2010-06-01 02:18:17
【问题描述】:

我有一个在 IIS 6 / Windows Server 2003 上运行的 ASP.NET 1.1 应用程序。 这是我们的应用程序,但我们正在尝试专门复制客户的安装,因此应用程序文件夹已完全从他们的生产服务器复制到我们的测试机器上,然后我们手动为 IIS 创建了虚拟目录和 Web 应用程序。

Internet 信息服务 (IIS) 管理器:

  • 应用程序池
  • 网站
    • 默认网站
      • xxxxx(虚拟目录)
        • yyyyy(网络应用程序)
  • 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 用户和网络服务用户对 Temporary ASP.NET Files 文件夹具有读/写权限
  • 虚拟目录设置为正确的 ASP.NET 版本
  • 允许 ASP.NET 1.1 Web 服务扩展
  • 虚拟目录具有文件扩展名和所有动词到 aspnet 1.1 DLL 的正确映射
  • 虚拟目录属性允许运行脚本和可执行文件
  • 匿名访问已开启且用户名和密码正确

我错过了什么?

【问题讨论】:

    标签: asp.net iis


    【解决方案1】:

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

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

    【讨论】:

    • 我认为您的意思是,如果 Web 应用程序 (yyyyy) 比虚拟目录 (xxxxx) 低一级,那么每个应用程序的属性都单独设置为允许执行脚本?事实证明你是对的,在这种情况下,较低级别 (yyyyy) 不会覆盖较高级别 (xxxxx),因此修复了它。
    • 可能是上层不覆盖或上层设置为不执行脚本...我看不到您的 IIS 设置,但是当脚本无法执行时,这是首先要查找的内容...
    • 我刚刚被一个静态网站所吸引。启用默认内容页面(例如 index.htm)的机制可能需要授予此权限才能运行。我原以为 UI 会解决这个问题。我认为是时候淘汰旧的 IIS 6 服务器了!
    • 谢谢尤金。这也有助于我使用旧系统。
    【解决方案2】:

    您可能还需要检查特定应用程序的处理程序映射设置右侧窗格中的“编辑功能权限...”按钮并启用“执行”。这就是我和我的同事持续了 3 个小时的原因,但症状几乎完全相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多