【问题标题】:How to configure an MVC6 app to work on IIS?如何配置 MVC6 应用程序以在 IIS 上运行?
【发布时间】:2015-01-09 03:43:10
【问题描述】:

所以我在 Visual Studio 2015 中构建了一个 MVC6 应用程序,并且已经设法解决了大部分问题,但是,我还没有进行部署。

在 MVC4(我之前使用的)中,我们的进程*被发布到一个文件夹,然后在 IIS 中设置网站(右键单击 Sites -> Add Website)。

  • 实际上,我们的进程是在 IIS 和 TeamCity 中设置的,但不适用于这样的测试应用程序:)。

我遵循了这个过程,显然设置 IIS 网站并发布到正确的文件夹很简单......但这实际上对我不起作用。

我们在 Windows Server 2012 上运行 IIS 8,并在服务器上安装了 .Net 4.6 运行时。

【问题讨论】:

  • 您能否详细说明您认为它不起作用的原因?
  • @Cory - 我收到一个错误页面,告诉我我没有查看文件夹的权限。
  • 你能告诉我们文件夹结构吗?
  • 如果是什么?在服务器框中,该站点已发布到c:\inetpub\websites\sitename。发布的站点有一个 src 和 wwwroot 文件夹以及 3 个.cmd 文件

标签: iis visual-studio-2015 asp.net-core-mvc asp.net-core


【解决方案1】:

以下步骤对我有用,应该可以帮助您在 IIS 上托管您的项目。

使用 Visual Studio 2015 Preview 作为您的 IDE,

  1. 创建一个 ASP .NET 5 Starter 应用程序。
  2. 检查它是否在 IIS 之外工作。
  3. 完成后,发布应用程序。在本例中,我选择了位置C:\PublishWebApp。

    3.1。发布您的应用程序时,请确保您拥有:

    • 禁用预编译
    • 选择amd64

      (见下图)

  1. 成功发布后,转到C:\PublishWebApp。您应该会在里面看到approot 和wwwroot 文件夹。
  2. 现在打开 IIS 管理器(我假设您已启用 ASP .NET 4.5 功能)
  3. 创建一个新网站。

    6.1 : 选择wwwrooot 文件夹作为网站的物理路径。在这个例子中,它是C:\PublishWebApp\wwwroot。

  4. 检查网站以查看它是否正常工作。如果您遇到任何错误,请在此处发布。

如果在上图的 Publish Web Settings 窗口中勾选了预编译选项,那么您必须

  1. 转到您已发布的 Web 应用程序的 wwwroot 文件夹。在本例中为C:\PublishWebApp\wwwroot。
  2. 找到web.config。
  3. 在您发布的应用程序的文件夹内,approot 文件夹内有一个packages 文件夹,该文件夹应包含一个以您的应用程序命名的文件夹,下面有一个版本文件夹。该文件夹内应该是一个名为root 的文件夹。在web.config 中,将键kre-app-base 的值设置为root 文件夹。作为参考,请参见下面的代码行。在本例中,应用程序名称为 WebApplication10。

    <add key="kre-app-base" value="..\approot\packages\WebApplication10\1.0.0\root" />
    

【讨论】:

  • 谢谢,我会在星期一试试这个 - 我想我在发布期间打勾了预编译,所以希望这就是问题:)。
  • 如果预编译选项被勾选,那么它也可以工作。但为此,您必须进行小设置。我会更新我的答案。
  • 为了让它工作,我取消了预编译的应用程序配置,重要的是,将 IIS 指向wwwroot 文件夹。我的实际问题是我让 IIS 指向我发布到的同一个文件夹 - 这是不正确的:)。大规模的 n00b 移动。附:谢谢@dotnetstep!
  • @Vartan Simonian:你知道如何使用 Web Deploy 工具将 asp.net 5 站点发布到 IIS 中吗?
  • @WillHuang 我还没做过,但这可能会有所帮助:asp.net/mvc/overview/deployment/visual-studio-web-deployment/…
【解决方案2】:

我花了几个小时调试这个问题终于解决了,步骤:

1) 使用 Visual Studio 将 MVC6 应用程序发布到文件系统中,确保选择正确的 DNX 目标版本,在我的例子中是 dnx-clr-win-x64.1.0.0-rc1-update1。

在输出文件夹中,将“wwwroot”文件夹映射到 IIS 中的应用程序(请勿将其映射到 sup-applicaiton,只有 IIS 中的 ROOT 应用程序才能与 DNX 一起使用,例如“默认网站”)。

【讨论】:

    【解决方案3】:

    我刚刚花了一天时间试图让这个工作。我发现这个 here(搜索 GuardRex 的帖子)非常宝贵,完成接受的答案给出的步骤,这就是它的开始。

    如果您尝试将应用程序添加到站点,则几乎有很多解决方法和需要的额外配置,详见链接。

    对于初学者:

    1)确保您已安装 HttpPlatform 处理程序here

    2) 看起来很明显,但请确保在您的服务器上安装了 .net5 here

    我知道,如果您要向站点添加应用程序,那么现在每个人都应该知道部署过程中存在一些陷阱和急需的改进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多