c# - 部署到Azure问题:无法加载文件或程序集'System.Web.Mvc,版本= 5.2.3.0… list 不匹配问题

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

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

相关文章:

c# - 字符串未被识别为有效的 DateTime,asp.net

javascript - getJSON 方法不起作用

javascript - MVC Bootstrap 部分 View ValidationMessageFor 在加载页面时执行

asp.net-mvc - 金七静行难解

c# - Parallel.ForEach 缺失/忽略/跳过/不添加对象

c# - 如何使用左移运算符计算大幂次的 2 的幂次?

asp.net - Windows 身份验证仅限于特定域

c# - 清除 ViewBag?

c# - Ping 或以其他方式通过 C# 中的 MAC 判断设备是否在网络上

c# - 是否可以从 base64 格式解析证书?