相同的构建在 IIS 的不同服务器中显示不同的行为

Same build showing different behaviour in different servers in IIS

我已经在两个不同的 servers.I 上部署了应用程序 Visual studio 2012.Both 服务器正在使用 IIS(7.5 版)。使用的操作系统是 Windows 2008 R2.The 应用程序池 .net 框架是 4。但是部署在一台服务器上的构建工作 fine.But 其他服务器中的构建在 web.config itself.The 中显示错误是关于程序集版本 referenced.For 示例:

Assembly 'System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' uses 'System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'

任何人,请帮助我找出为什么只在一台服务器上显示此错误以及为什么它在另一台服务器上运行正常。

这是因为你的两台服务器没有安装相同版本的ASP.NET MVC(鉴于使用的版本,我假设你在VS2012中创建了一个asp.net MVC4项目,ASP.NET MVC4 安装在第一台服务器上,MVC3 仅安装在第二台服务器上。

  • 在第二台服务器上安装 MVC4(来自 https://docs.microsoft.com/en-us/aspnet/mvc/mvc4 的独立安装)
  • 通过将 copyLocal 设置为 true 将必要的 aspnet dll 与您的 dll 一起部署(参见此处:MVC4 minimum references
  • 或者,更好的是,将 nuget 引用添加到项目中的 Microsoft.AspNet.Mvc (Install-Package Microsoft.AspNet.Mvc -Version 4.0.40804),这样部署会自动包含所有必需的 dll

此外,您可能需要在 web.config 中进行一些绑定重定向,但我认为此处并非如此