服务器应用程序不可用 – 无法加载文件或程序集System.Web,访问被拒绝

我是一个开发人员,尝试在Windows Server 2003(32位)机器上为WCF Web服务设置一个虚拟目录,并且在事件日志中logging了以下内容,从而使“服务器应用程序不可用”

消息:无法加载文件或程序集“System.Web,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”或其某个依赖项。 访问被拒绝。

到目前为止我已经尝试过:

  • 仔细检查用于匿名访问控制的帐户(这是本地pipe理员)
  • 检查C:\Windows\Microsoft.Net\Framework目录上的权限(ASPNET具有读/写访问权限,我甚至允许Everyone访问权限)
  • 禁用和启用ASP.Net v2.0扩展
  • 在应用程序扩展列表中删除并重新创build.svc扩展名
  • 检查以确保System.Web存在于GAC中
  • 重新安装.Net框架3.5 SP 1
  • 为虚拟目录提供自己的应用程序池
  • 融合日志logging告诉我没有任何兴趣

我无法弄清楚 – 还有另一个.asmxnetworking服务,似乎可以在相同的Web服务器上使用相同的设置完美的工作。 我错过了什么?

是否有任何技术可以用来找出这些权限问题? 了解其试图访问的用户帐户和path,但在机器审核策略中启用Failure事件似乎没有任何作用。

Ugg我的坏 – 这似乎是一个愚蠢的https://serverfault.com/questions/63675/server-unavailable-and-removed-permissions-on-net-sites-after-windows-update 。 我检查了服务本身包含的目录的权限,一切正常。

我还注意到,在另一个问题FileMon被用来查看什么/谁不能访问什么的更详细的信息。

你最近的评论可能有关键。 Filemon(或processmon)是你这样的情况的朋友。 如果您还没有使用它,那么可以安全地在生产服务器上运行,免费且易于理解。 (只是不要让它捕获数据太长)

您拥有的权限错误可能来自GAC中的某些内容,因为System.Web应该从GAC中调用。 唯一的例外是如果开发人员将System.Web.dll放在/ bin文件夹中。 权限不应该被locking,除非有人真正强化了服务器。 过程监视器应该很快告诉你答案。

要捕获它,请将Process Monitor排队,开始捕获,刷新失败的页面,停止捕获,然后search单词“denied”。

还有另一个.asmxnetworking服务,在相同的Web服务器上,使用相同的设置,似乎可以完美地工作。 我错过了什么

难道你试图在同一个端口和IP上运行不同的网站吗? 你可以尝试改变其中一个端口,或closures其他网站?

只是一个远射。