部署到Azure问题:无法加载文件或程序集&System; Web.Mvc,版本= 5.2.3.0 ...清单不匹配问题

时间:2015-05-10 05:42:40

标签: c# asp.net asp.net-mvc azure

我正在开发一个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

2 个答案:

答案 0 :(得分:5)

由于我之前在同一位置部署了另一个站点,并且上面有MVC程序集的旧版本,因此导致了冲突。我踩进了webroot,擦干净了所有东西并从visual studio重新发布。所以这真的只是我懒惰而不是先清理旧网站的情况。

因此,对于任何遇到此错误的人,我建议为初学者进行干净部署,并在删除它们之前查看bin中的程序集以进行验证。

答案 1 :(得分:1)

当.NET asslembly加载程序尝试加载除项目文件中指定的程序集之外的程序集时,这基本上就会发生。尝试更新System.Web.Mvc中的nuget包 这个以及所有引用的项目,并确保您的项目指向正确的程序集版本。