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

7
我正在尝试在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授予ASPNET帐户GAC的读取权限 - 在IIS中为站点设置ASP.NET版本为2.0
我不确定我还能做什么!
使用"Process Monitor"将我直接引导到问题。感谢Mun的提示。
这是一个相当晦涩的问题:我之前使用了程序集绑定日志查看器(fuslogvw.exe),并使用自定义路径选项将其设置为将所有组件绑定记录到磁盘。然而,ASPNET帐户没有该自定义路径的权限。因此,恢复使用默认路径解决了此问题。将该自定义路径授予ASPNET帐户的读/写权限也有效,禁用绑定日志记录也有效。
5个回答

2

2
你可能会发现Process Monitor在解决这类问题时非常有用。如果你设置筛选器以显示所有包含aspnet_wp.exe的活动,它应该会显示正在尝试访问哪些文件,并允许你相应地更新权限。

1

我知道回答已经太晚了。今天我也遇到了同样的问题。我在命令提示符中运行了下面的命令,问题得以解决。

aspnet_regiis -ga machinename\ASPNET

0

这个方法解决了我的问题,我觉得应该分享一下:

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


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

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