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

时间:2017-08-24 11:45:26

标签: .net asp.net-mvc-4 visual-studio-2012 iis-7.5 windows-server-2008-r2

我已经在两个不同的服务器上部署了一个应用程序。我使用Visual Studio 2012进行了构建。两个服务器都使用IIS(版本7.5)。使用的操作系统是Windows 2008 R2。应用程序池.net框架是4。但部署在一台服务器上的构建工作正常。但是其他服务器中的构建在web.config本身中显示错误。错误是关于引用的程序集版本。例如:

  

Assembly'System.Web.Mvc,Version = 4.0.0.0,Culture = neutral,   PublicKeyToken = 31bf3856ad364e35'使用'System.Web.WebPages,   Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'   其版本高于引用的程序集   'System.Web.WebPages,Version = 1.0.0.0,Culture = neutral,   公钥= 31bf3856ad364e35'

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

1 个答案:

答案 0 :(得分:1)

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

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

此外,您可能需要在web.config中进行一些绑定重定向,但我不认为这是在这里的情况