现在,我保证我用Google搜索了这个。堆栈溢出对此问题有大约4或5个解决方案。不过,他们似乎都没有工作。我正在使用EntityFramework 5(4.4)和MVC 3项目。这在过去运作良好,但自从我开启项目(大约20天左右)以来已经有一段时间了。我刚刚卸载了&重新安装Sql Server 2008 R2 Express。从那时起我就重新启动了。
在我的所有cshtml文件中,我看到@model行上的错误下划线。当我将鼠标悬停在它上面时,我会看到以下内容:
ASP.NET运行时错误:无法加载文件或程序集'EntityFramework,Version = 4.4.0.0,Culture = neutral,PublicTokenKey = b77a5c561934e089'或其依赖项之一。访问被拒绝。
我已经通过包管理器控制台卸载并重新安装了EntityFramework包。我也是通过nuget完成的。我关闭并重新打开了视觉工作室。我删除了引用并通过浏览dll手动添加它。
我的web.config条目如下所示:
[open tag] section name =“entityFramework”type =“System.Data.Entity, EntityFramework,Version = 4.4.0.0,Culture = neutral, PublicKeyToken = b77a5c561934e089“requirePermission =”false“[close tag]
有人有任何想法吗?
编辑1完整错误详情
Server Error in '/' Application.
Could not load file or assembly 'EntityFramework' or one of its dependencies. Access is denied.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.IO.FileLoadException: Could not load file or assembly 'EntityFramework' or one of its dependencies. Access is denied.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Assembly Load Trace: The following information can be helpful to determine why the assembly 'EntityFramework' could not be loaded.
=== Pre-bind state information ===
LOG: User = Unknown
LOG: DisplayName = EntityFramework
(Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: EntityFramework | Domain ID: 2
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///C:/MercurialProjects/ProxySetup/ProxySetup/
LOG: Initial PrivatePath = C:\MercurialProjects\ProxySetup\ProxySetup\bin
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\MercurialProjects\ProxySetup\ProxySetup\web.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/014aecc8/d1c2eaf7/EntityFramework.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/014aecc8/d1c2eaf7/EntityFramework/EntityFramework.DLL.
LOG: Attempting download of new URL file:///C:/MercurialProjects/ProxySetup/ProxySetup/bin/EntityFramework.DLL.
LOG: Using application configuration file: C:\MercurialProjects\ProxySetup\ProxySetup\web.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
ERR: Failed to complete setup of assembly (hr = 0x80070005). Probing terminated.
Stack Trace:
[FileLoadException: Could not load file or assembly 'EntityFramework' or one of its dependencies. Access is denied.]
[FileLoadException: Could not load file or assembly 'EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Access is denied.]
System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +39
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks) +132
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +144
System.Reflection.Assembly.Load(String assemblyString) +28
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +46
[ConfigurationErrorsException: Could not load file or assembly 'EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Access is denied.]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +618
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +209
System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +130
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +178
System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +94
System.Web.Compilation.BuildManager.CallPreStartInitMethods() +332
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +677
[HttpException (0x80004005): Could not load file or assembly 'EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Access is denied.]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9090988
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +97
System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +258
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272
编辑2
根据上面的调试信息,我手动将应用程序使用的所有dll添加到C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 014aecc8 \ d1c2eaf7文件夹中,因为这是什么最终被引用为错误不断变化。
我没有看到ASPNET用户为C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \目录分配权限。我添加了:完全控制的IUSR,网络,网络服务,IIS_USRS(\ IIS_ISURS)。我仍然收到错误。
由于我仍然因为错误而拒绝访问,我让用户完全控制了我机器上的文件夹。应用程序加载。所以......这是一个权限错误。问题是,哪个帐户需要权限?
答案 0 :(得分:2)
这可能看起来很奇怪,但在遇到这个问题以及这样的问题之后,我发现了两个可能的原因,这些原因非常符合标准。
1)如果您正在使用chrome,请确保在尝试构建解决方案时关闭chrome(我假设您无法通过此错误构建解决方案?)。我知道这听起来很疯狂,但我发现有时,无论出于什么原因,当我在开发过程中使用chrome时,某些文件变得无法访问。我仍然不知道为什么,但如果你无法解决这个问题,那就值得一试。
2)在您的nuget包管理器中,如果您尚未重新安装实体框架,请将其卸载并重新安装。我发现当我将一个应用程序从一台机器移动到另一台机器,或者我从版本控制器更新它时,nuget软件包会以某种方式搞砸了。重新安装似乎是让它走上正轨的唯一方法。
3)关于你的权限特定问题,我不相信这是问题,但是,你整个app文件夹,子文件夹/文件应该让用户“Everyone”设置为具有完全读/执行权限(但不是写权限) )。这应该是关于权限所需的全部内容(至少在安装过程中我似乎需要这些)。
祝你好运。答案 1 :(得分:0)
如果您的解决方案有多个项目,请确保您的edmx模型位于具有引用该模型的代码的同一项目中。
这可能令人困惑,因为您可以在不同的项目中引用模型,并且不会收到智能感知错误,即使在运行时出现错误也是如此。