无法加载文件或程序集 此处的程序集名称 或其依赖项之一。访问被拒绝

Posted

技术标签:

【中文标题】无法加载文件或程序集 此处的程序集名称 或其依赖项之一。访问被拒绝【英文标题】:Could not load file or assembly assembly name here or one of it's dependencies. Access is denied无法加载文件或程序集 此处的程序集名称 或其依赖项之一。访问被拒绝 【发布时间】:2012-09-26 19:07:30 【问题描述】:

因此,有时我们的网络服务器(Windows Server 2008、IIS 7.5)会在我们拥有的非常古老的 .net 2.0ish asp.net/classic asp 网站上随机出现此错误。

通常情况下,IIS 重置会解决问题,但这个问题现在开始影响我们的生产服务器(IIS 不能在一天中真正重置这些),而且它似乎也更频繁地发生在任何地方别的。

所以我一直在寻找解决此问题的可能方法,但似乎无处不在的唯一方法是,如果我授予 NETWORKSERVICE/IIS_WPG 对临时 asp.net 文件的完全控制权,它应该可以自行修复。最后我检查了一下,这并不是一个好主意,因为您真的不希望您的 Web 应用程序完全控制任何东西(尤其是不在生产 Web 服务器上)。

如有任何关于此问题的指导,我们将不胜感激。

谢谢, 亚历克斯

示例错误:

“/”应用程序中的服务器错误。

无法加载文件或程序集“Csla.Extension”或其依赖项之一。访问被拒绝。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“Csla.Extension”或其依赖项之一。访问被拒绝。


无法加载文件或程序集“AjaxControlToolKit”或其依赖项之一。访问被拒绝。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“AjaxControlToolKit”或其依赖项之一。访问被拒绝。

来源错误: [没有相关的源代码行]

源文件:

c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\2794b922\App_Web_search.aspx.cdcab7d2.jqmd63vs.0.cs

【问题讨论】:

您是否使用匿名访问?您的 IIS 用户当前对“C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”有什么权限?您不必完全控制它,但在大多数情况下,它至少需要读取和写入权限。 这可能是由于意外的 IIS 和/或应用程序池崩溃/重新启动而引起的吗?可能会检查日志中的类似内容。 @David W - 是的,该站点确实又旧又笨重,因此应用程序池重新启动是绝对可能的。我们目前将其设置为每晚回收一次,但由于大量内存泄漏,它确实会经常回收。 @Gene S - 该站点使用 Windows 身份验证(但现在我正在查看它,它同时检查了表单和 Windows 身份验证)。 IIS_IUSRS(我假设它具有 NETWORKSERVICE(应用程序池在其下的 iis 帐户))具有读取和执行、列出文件夹内容和读取访问权限。我也可以给它写权限,但这又不是安全风险吗? 【参考方案1】:

我认为您的问题出在 IIS 上,关于它对文件夹(例如项目文件夹)的权限。因此请检查您的应用程序所在的应用程序池。这样您就可以为该池中的帐户授予适当的权限.默认情况下,在 IIS7 中,该帐户是 NETWORK SERVICE。

然后,您基本上会转到相关文件夹并允许读/写访问权限或帐户所需的任何权限。

【讨论】:

以上是关于无法加载文件或程序集 此处的程序集名称 或其依赖项之一。访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

无法加载文件或程序集“CefSharp.dll”或其依赖项之一

无法加载文件或程序集“***.dll”或其依赖项之一

BadImageFormatException 无法加载文件或程序集或其依赖项之一。试图加载格式不正确的程序

无法加载文件或程序集“Oracle.ManagedDataAccessDTC.DLL”或其依赖项之一

无法加载文件或程序集“msshrtmi”或其依赖项之一(Azure 表存储访问)

“无法加载文件或程序集‘XXX.YYY’或其依赖项之一。系统找不到指定的文件。”