我正在开发一个MVC网站,它在本地工作正常,但当我部署到我的Azure网站时,我收到此错误:
无法加载文件或程序集&System; Web.Mvc,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
我应该部署所有这些程序集。由于它在Azure中托管,我对盒子的控制有限,但我认为他们也会在那里安装这个组件,所以我不确定为什么这会导致问题。有什么想法吗?
更多详情:
' /'中的服务器错误应用
无法加载文件或程序集&System; Web.Mvc,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.IO.FileLoadException:无法加载文件或程序集&System; Web.Mvc,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
程序集加载跟踪:以下信息有助于确定程序集&System; Web.Mvc,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'无法加载。
警告:装配绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。 注意:程序集绑定失败日志记录会导致一些性能损失。 要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。
堆栈追踪:
[FileLoadException:无法加载文件或程序集' System.Web.Mvc,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)] marylandgives.mvc.MvcApplication.Application_Start()+ 0
[HttpException(0x80004005):无法加载文件或程序集&System; Web.Mvc,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)] System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context,HttpApplication app)+9916673 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo [] handlers)+118 System.Web.HttpApplication.InitSpecial(HttpApplicationState状态,MethodInfo []处理程序,IntPtr appContext,HttpContext上下文)+172 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext context)+336 System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+296
[HttpException(0x80004005):无法加载文件或程序集&System; Web.Mvc,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9930568 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+254
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.36215
答案 0 :(得分:5)
由于我之前在同一位置部署了另一个站点,并且上面有MVC程序集的旧版本,因此导致了冲突。我踩进了webroot,擦干净了所有东西并从visual studio重新发布。所以这真的只是我懒惰而不是先清理旧网站的情况。
因此,对于任何遇到此错误的人,我建议为初学者进行干净部署,并在删除它们之前查看bin中的程序集以进行验证。
答案 1 :(得分:1)
当.NET asslembly加载程序尝试加载除项目文件中指定的程序集之外的程序集时,这基本上就会发生。尝试更新System.Web.Mvc
中的nuget包
这个以及所有引用的项目,并确保您的项目指向正确的程序集版本。