【问题标题】:Why is ASP.NET failing due to permissions on GAC?为什么 ASP.NET 由于 GAC 的权限而失败?
【发布时间】:2008-10-14 12:30:22
【问题描述】:

我正在尝试在 XP 机器上运行 ASP.NET 2.0 应用程序。据我所知,一切都配置正确。但是,我收到以下消息:

服务器应用程序不可用

并且每次在应用程序事件日志中出现两个事件:

aspnet_wp.exe (PID: 3352) 已停止 没想到。

未能执行请求,因为 ASP.NET 进程标识不 具有全局读取权限 程序集缓存。错误:0x80070005 访问被拒绝。

以前,ASP.NET 应用程序在这台机器上运行良好。

我尝试了以下步骤,但没有成功:

  • 我已将网站主目录的读取权限授予 ASPNET 帐户
  • 我已经使用 aspnet_regiis -i 重新安装了 ASP.NET 2.0
  • 我已使用 aspnet_regiis -ga \ASPNET
  • 向 ASPNET 帐户授予权限
  • 我已使用 CACLS %WINDIR%\assembly /e /t /p \ASPNET:R
  • 将 GAC 的读取权限授予 ASPNET 帐户
  • 我已在 IIS 中将该站点的 ASP.NET 版本设置为 2.0

我不确定我还能做什么!


使用 Process Monitor 直接导致我遇到了问题。非常感谢 Mun 的提示。

这是一个相当晦涩的问题:我之前使用了程序集绑定日志查看器 (fuslogvw.exe),并将其设置为使用自定义路径选项将所有绑定记录到磁盘。但是,ASPNET 帐户没有对该自定义路径的权限。因此,恢复使用默认路径解决了该问题。向 ASPNET 帐户授予对该自定义路径的读/写权限也有效,禁用绑定日志记录也是如此。

【问题讨论】:

    标签: asp.net gac


    【解决方案1】:

    您可能还会发现Process Monitor 对解决这些类型的问题很有用。如果您设置一个过滤器来显示所有包含 aspnet_wp.exe 的活动,它应该会向您显示它正在尝试访问哪些文件,从而允许您相应地更新权限。

    【讨论】:

      【解决方案2】:

      以下是必要的权限:http://msdn.microsoft.com/en-us/library/kwzs111e.aspx

      更多信息:http://support.microsoft.com/default.aspx?kbid=811320

      您运行的命令应该足够了,但值得检查:)

      【讨论】:

        【解决方案3】:

        我知道现在回答这个问题为时已晚。我今天也有同样的问题。我在命令提示符下运行了以下内容,它解决了问题

        aspnet_regiis -ga machinename\ASPNET
        

        【讨论】:

          【解决方案4】:

          我们曾经在 ASP.NET 中遇到过这个问题,因为当 Visual Studio 创建程序集的临时副本时,索引服务会开始扫描它们以查找病毒,这偶尔会导致“访问被拒绝”消息,因为调试器会试图打开共享文件。告诉索引服务不要索引临时程序集目录解决了这个问题。

          【讨论】:

            【解决方案5】:

            这为我解决了这个问题,我想分享一下:

            如果这是针对 IIS 5.1(基本上是 IIS 的旧版本),请右键单击您的虚拟目录(来自 inetmgr)并转到“所有任务”>“权限向导” 选择“从模板中选择新的安全设置”选项,然后选择公共网站。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-07-31
              • 1970-01-01
              • 1970-01-01
              • 2021-02-25
              • 2023-03-31
              • 2023-03-21
              • 2016-12-14
              • 2018-02-10
              相关资源
              最近更新 更多