无法加载文件或程序集'系统.Web,版本=4.0.0.0,文化=neutral'或者它的一个相关项.访问

本文关键字:访问 或者 一个 文件 加载 程序集 系统 文化 版本 Web neutral | 更新日期: 2023-09-27 18:08:54

好像已经有上百个这样的问题了…我已经搜索了很多,他们似乎没有建议任何我还没有尝试过的东西。

我得到错误:

无法加载文件或程序集"系统"。Web,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。访问被拒绝

描述:当前web请求执行过程中出现未处理的异常。请查看堆栈跟踪以获得有关错误及其在代码中的起源的更多信息。

异常详细信息:System. io . fileloadexception: Could not load file or assembly 'System。Web,版本=4.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a'或其依赖项之一。访问被拒绝

Source Error: 

Line 44:         private static IKernel CreateKernel()
Line 45:         {
Line 46:             var kernel = new StandardKernel();
Line 47:             try
Line 48:             { 

上面的代码在我的Ninject初始化器中。

我已经给了每个人&;权限:

C: ' Windows ' Microsoft.NET ' Framework ' v4.0.30319

C: ' Windows ' Microsoft.NET ' Framework64 ' v4.0.30319

C:'Program Files (x86)'Reference Assemblies'Microsoft'Framework' .NETFramework

FusionLog细节:

Assembly manager loaded from:  C:'Windows'Microsoft.NET'Framework'v4.0.30319'clr.dll
Running under executable  C:'Program Files (x86)'IIS Express'iisexpress.exe
--- A detailed error log follows. 
=== Pre-bind state information ===
LOG: DisplayName = System.Web, Version=4.0.0.0, Culture=neutral,    PublicKeyToken=b03f5f7f11d50a3a
(Fully-specified)
LOG: Appbase = file:///F:/TFS/MMSChange/Main/SMRH.MMSChange/SMRH.MMSChange.Web/
LOG: Initial PrivatePath = F:'TFS'MMSChange'Main'SMRH.MMSChange'SMRH.MMSChange.Web'bin
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Found application configuration file     (F:'TFS'MMSChange'Main'SMRH.MMSChange'SMRH.MMSChange.Web'web.config).

我也给了每个人对我的代码文件夹的权限。我试过运行ProcMon(它帮助我解决了以前不同解决方案的类似问题);但是它不会为system.web.dll创建一个单独的条目。

我有内置的模拟。我使用单独的帐户访问数据库,而数据库帐户的模拟破坏了这一点。没有模拟,应用程序运行良好。(但没有数据,因为所有的db调用失败)

有趣的是,如果我将相同的代码部署到我的本地机器上,并通过IIS网站运行它:它可以工作。但是如果我只是在IDE中调试它,它就会失败。

无法加载文件或程序集'系统.Web,版本=4.0.0.0,文化=neutral'或者它的一个相关项.访问

我得到了ProcMon运行和过滤结果的另一个实例,仅显示IISExpress结果(因为这是给我错误的一个)。

然后我从IDE编译并启动了我的应用程序,等待错误出现。在我得到错误后,我用"Access Denied&;"过滤了结果。

通常我过滤结果寻找system.web.dll,但这次我决定忽略它。

我发现唯一抛出拒绝访问的文件是:"C:'Users'1roj1'Documents'IISExpress'config'aspnet.config"(其中1roj1是我的用户账号)。

我给了我的模拟用户对这个文件的完全访问权,瞧,一切都工作了!

我认为你需要注册。net framework 4.0 for IIS的上述问题。以下是步骤……

  1. 管理员身份打开命令提示符
  2. 在命令提示符中导航到"C:'Windows' microt.net 'Framework'v4.0.30319"目录[使用命令cd C:'Windows'Microsoft.NET'Framework'v4.0.30319]为IIS注册。net FrameWork[使用命令aspnet_regiis.exe -i]
  3. 重新启动IIS [use command iisreset].
相关文章: