为什么ASP.NET因GAC权限而失败?

时间:2008-10-14 12:30:23

标签: asp.net gac

我正在尝试在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< my machine name> \ ASPNET
  • 授予ASPNET帐户的权限
  • 我已使用CACLS%WINDIR%\ assembly / e / t / p<我的计算机名称> \ ASPNET:R
  • 向GAC授予对ASPNET帐户的读取权限
  • 我在IIS中将网站的ASP.NET版本设置为2.0

我不确定我还能做什么!


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

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

5 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

aspnet_regiis -ga machinename\ASPNET

答案 3 :(得分:0)

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

答案 4 :(得分:0)

这解决了我的问题,我想分享:

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