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

我不确定我还能做什么!


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

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

4

5 回答 5

2

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

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

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

于 2008-10-14T12:53:26.050 回答
2

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

于 2008-10-14T13:07:32.183 回答
1

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

aspnet_regiis -ga machinename\ASPNET
于 2012-03-14T08:43:49.537 回答
0

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

于 2008-10-14T13:37:28.847 回答
0

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

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

于 2012-11-28T23:00:39.477 回答