我正在开发一个MVC站点,它在本地可以正常运行,但是当我部署到我的Azure站点时,出现此错误:
无法加载文件或程序集'System.Web.Mvc,版本= 5.2.3.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
我应该部署所有这些程序集。自从它托管在Azure中以来,我对盒子的控制有限,但是我认为他们也可以在上面安装该程序集,因此我不确定为什么会引起问题。有任何想法吗?
更多细节:
“ /”应用程序中的服务器错误。
无法加载文件或程序集'System.Web.Mvc,版本= 5.2.3.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。
异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“ System.Web.Mvc,版本= 5.2.3.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
源错误:
当前Web请求的执行期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来标识有关异常的来源和位置的信息。
程序集加载跟踪:以下信息有助于确定为什么无法加载程序集'System.Web.Mvc,版本= 5.2.3.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35'。
WRN:程序集绑定日志记录已关闭。
若要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。
注意:程序集绑定失败日志记录会带来一些性能损失。
要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。
堆栈跟踪:
[FileLoadException:无法加载文件或程序集'System.Web.Mvc,版本= 5.2.3.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
marylandgives.mvc.MvcApplication.Application_Start()+0
[HttpException(0x80004005):无法加载文件或程序集'System.Web.Mvc,版本= 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext上下文,HttpApplication应用)+9916673
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext上下文,MethodInfo []处理程序)+118
System.Web.HttpApplication.InitSpecial(HttpApplicationState状态,MethodInfo []处理程序,IntPtr appContext,HttpContext上下文)+172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext上下文)+336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+296
[HttpException(0x80004005):无法加载文件或程序集'System.Web.Mvc,版本= 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
System.Web.HttpRuntime.FirstRequestInit(HttpContext上下文)+9930568
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext上下文)+101
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext上下文)+254
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.36215
最佳答案
由于我以前曾在同一位置部署了旧版本的MVC程序集的另一个站点,因此造成了冲突。我通过ftp进入webroot,将所有内容清除干净,然后从Visual Studio重新发布。因此,这实际上只是我懒惰而不是先清理旧站点的一种情况。
因此,对于任何其他遇到此错误的人,我建议您对启动程序进行干净的部署,并建议您在删除bin进行验证之前先检查垃圾箱中的程序集。
关于c# - 部署到Azure问题:无法加载文件或程序集'System.Web.Mvc,版本= 5.2.3.0… list 不匹配问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30148139/