【问题标题】:How to install ASP.NET MVC 5 on a server?如何在服务器上安装 ASP.NET MVC 5?
【发布时间】:2013-11-26 14:47:54
【问题描述】:

我刚刚将我的网站从 MVC 4 更新到 MVC 5。

现在,当我想在我的 Web 服务器而不是我的开发机器上运行它时,它不起作用。

它认为是因为我需要在服务器上安装 MVC 5 库但我找不到它们。

我下载了WebMatrix 3,希望它能提供一种安装方式,但它只能让我安装 MVC 4。

我应该安装什么才能运行 ASP.NET MVC 5 应用程序?

(不安装 Visual Studio 2013)

编辑: 我禁用了自定义错误并错误了我所拥有的:

Could not load file or assembly 'System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

编辑 2: 我发现问题是由于我的依赖项之一使用的是 razor 2.0.0.0 版本。

【问题讨论】:

  • 除了“它不起作用”之外,我们还需要更多诊断信息。
  • 访问网站时出现 IIS 服务器错误页面。没有错误信息。
  • 您查看应用程序事件日志了吗?开始 > 运行 > eventvwr
  • @alexandrekow 在您的 web.config 文件中禁用 IIS(和 ASP.NET)自定义错误,然后您将收到应该有帮助的详细错误消息。
  • MVC 不是要安装的东西。它只是需要在 bin 文件夹中的一组 dll。就像戴说的,你需要得到具体的错误信息。这可能与您认为正在发生的事情完全不同。

标签: asp.net asp.net-mvc asp.net-mvc-5


【解决方案1】:

部署应用时,只需确保所有程序集都部署到生产环境中的 bin 文件夹中。 ASP.NET MVC 是一个 xCopy 部署,因此您无需安装任何东西。

您可能需要检查您的生产环境是否已注册 ASP.NET 4.0 和 4.5。

【讨论】:

  • 好的,谢谢。我记得必须将 MVC 3 安装到我的 Web 服务器一次。所以我猜如果在应用程序 bin 文件夹中找不到 dll,应用程序会在 GAC 中查找。
  • 如何检查 ASP.NET 4.5 是否已注册?
  • 最简单的方法就是用 IIS 重新注册 .NET。它很快。我会在控制面板中检查您是否安装了 Microsoft .NET Framework 4.5。然后像往常一样使用 regiis。 stackoverflow.com/questions/13749138/…
  • “检查您的生产环境是否注册了 ASP.NET 4.0 和 4.5”需要什么?我去了控制面板-> 程序和功能-> 并查看 .NET 4.5.2 和 .NET 4.6。我还需要寻找什么?
【解决方案2】:

MVC5 和未来版本的 MVC 不需要安装在 Windows Server 上。 MVC5 应用程序将所有内容都作为包。你不需要任何东西来安装它。

服务器上需要的是您在应用程序中使用的每个库和程序集的副本。为了解决这个问题,只需确保您的 bin 文件夹中的所有内容在服务器上调用相同,而不是服务器正在寻找它自己的 GAC 用于您的应用程序中使用的程序集。


如果你没有找到所有的包,那么你可以通过cmd在服务器上安装nuget包。

【讨论】:

  • 这是一个有用的线索,但尽管 NuGet 使用 Microsoft.Owin 3.0.1 和 Web.config 重定向到 3.0.1,但我收到此错误:无法加载文件或程序集 'Microsoft.Owin, Version=2.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)
  • @JohnZabroski 您的 Bin 文件夹确实包含与 web.config 中编写的版本不同的版本。如果您不确定从 web.config 中删除特定版本字符串并尝试它。
  • 问题可能是我在目标环境中安装了 .NET Framework 4.6,但在我的 Visual Studio 解决方案中,我的目标是 4.6.1?
  • @JohnZabroski .NET Framework 在生产环境中不应该更新,无论是小更新还是大更新。如果您在开发中以 4.6.1 为目标,那么您也必须在生产服务器中使用它。
【解决方案3】:

最好进行发布,在解决方案资源管理器中右键单击您的项目并选择“发布”。基本上,它会编译您的解决方案并将所有程序集/工件转储到您的网络服务器、ftp 或本地文件夹。

【讨论】:

    【解决方案4】:

    确保将所有程序集引用复制到部署目录。为此,您可以更改 .project 文件中的 标记。或者,您可以使用 Visual Studio 的属性设置器将每个 dll 引用的“复制本地”属性设置为“真”。

    【讨论】:

      猜你喜欢
      • 2012-08-16
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 2012-05-16
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      相关资源
      最近更新 更多