【问题标题】:Same build showing different behaviour in different servers in IIS相同的构建在 IIS 的不同服务器中显示不同的行为
【发布时间】:2017-08-24 11:45:26
【问题描述】:

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

Assembly 'System.Web.Mvc,版本=4.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35' 使用'System.Web.WebPages, 版本=2.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35' 具有比引用程序集更高的版本 'System.Web.WebPages,版本=1.0.0.0,文化=中性, PublicKeyToken=31bf3856ad364e35'

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

【问题讨论】:

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


    【解决方案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 一起部署。
    • 或者,更好的是,在您的项目中向 Microsoft.AspNet.Mvc 添加一个 nuget 引用 (Install-Package Microsoft.AspNet.Mvc -Version 4.0.40804),以便部署自动包含所有必需的 dll

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

    【讨论】:

    • 谢谢,Treziac。我检查了两台服务器。在一台服务器上安装了 MVC 3 和 MVC 4,但在另一台服务器上,只安装了 MVC 3。该服务器是生产服务器。所以解决此问题的最佳解决方案是什么?
    • 我给出了解决方案 - 最简单的方法是通过我在第二台服务器上的链接安装 mvc4(选择独立安装)
    • 再查询,第一台服务器上安装了.net framework 4.7,另一台服务器上安装了.net framework 4.5。这个因素会影响应用的部署吗?我已经说过了,第二台服务器是生产服务器,许多其他应用程序正在运行。如果我安装 MVC 4,这些应用程序会影响吗?
    • 作为一般规则,服务器之间总是有一致的 evnrionment,如果你不想要一些麻烦(像现在)安装 mvc4 不应该出现问题,但我不是 100% 有信心。您可以尝试其他两个选项之一
    • 我已经尝试了其他两个选项。但它再次出现了一些错误。希望安装 MVC4 将解决问题。无论如何,感谢 cmets。它帮助我找出了根本原因错误
    猜你喜欢
    • 2013-12-02
    • 1970-01-01
    • 2016-06-08
    • 2017-04-14
    • 1970-01-01
    • 2011-12-16
    • 2011-03-16
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多