如何配置 MVC6 应用程序以在 IIS 上运行?
How to configure an MVC6 app to work on IIS?
所以我在 Visual Studio 2015 年构建了一个 MVC6 应用程序,并且已经设法解决了大部分问题,但是,我还没有完成部署。
在 MVC4(我之前使用的)中,我们的流程*被发布到一个文件夹,然后在 IIS 中设置网站(右键单击 Sites
-> Add Website
)。
- 实际上,我们的流程是在 IIS 和 TeamCity 中设置的,但不适用于这样的测试应用程序:)。
我遵循了这个过程,显然设置 IIS 网站并发布到正确的文件夹是微不足道的...但这对我来说实际上不起作用。
我们在 Windows Server 2012 上运行 IIS 8,我们已经在服务器上安装了 .Net 4.6 运行时。
以下步骤对我有用,应该可以帮助您在 IIS 上托管您的项目。
使用 Visual Studio 2015 预览作为您的 IDE,
- 创建一个 ASP .NET 5 入门应用程序。
- 检查它是否在 IIS 之外工作。
完成后,发布应用程序。在此示例中,我选择了位置 C:\PublishWebApp
.
3.1。发布您的应用程序时,请确保您拥有:
- 禁用预编译
Selected amd64
(见下图)
- 发布成功后,转到
C:\PublishWebApp
。您应该会在里面看到文件夹 approot
和 wwwroot
。
- 现在打开 IIS 管理器(我假设您已启用 ASP .NET 4.5 功能)
创建一个新网站。
6.1 : Select wwwrooot
文件夹作为网站的物理路径。本例中为C:\PublishWebApp\wwwroot
.
检查网站是否正常。如果您遇到任何错误,请在此处post它们。
如果在上图中的发布 Web 设置 window 中勾选了预编译选项,那么您必须
- 转到您已发布的 Web 应用程序的
wwwroot
文件夹。在这个例子中,它是 C:\PublishWebApp\wwwroot
.
- 找到
web.config
.
在您发布的应用程序的文件夹中,approot
文件夹中有一个 packages
文件夹,其中应包含一个以您的应用程序命名的文件夹,其中一个文件夹用于下面的版本。该文件夹内应该有一个名为 root
的文件夹。在 web.config
中,将键 kre-app-base
的值设置为 root
文件夹。作为参考,请参阅下面的代码行。在此示例中,应用程序名称为 WebApplication10.
<add key="kre-app-base" value="..\approot\packages\WebApplication10.0.0\root" />
我花了几个小时调试问题终于成功了,步骤:
1) 使用 visual studio 将您的 MVC6 应用程序发布到文件系统中,确保您选择了正确的 DNX 目标版本,在我的例子中是 dnx-clr-win-x64.1.0.0-rc1-update1。
在输出文件夹中将 "wwwroot" 文件夹映射到您在 IIS 中的应用程序(请勿将其映射到支持应用程序,只有 IIS 中的 ROOT 应用程序可以使用 DNX,例如 "Default Web Site")。
我刚刚花了一天的时间试图让它工作。我发现这个 here(搜索 GuardRex 的帖子)非常宝贵,完成已接受答案给出的步骤,这就是它的开始。
如果您尝试将应用程序添加到站点,几乎需要大量变通方法和额外配置,详见 link。
初学者:
1)确保安装了 HttpPlatform 处理程序here
2) 看起来很明显,但请确保您的服务器上安装了 .net5 here
我知道这是在向站点添加应用程序时发生的情况,但目前每个人都应该意识到部署过程中存在一些陷阱和急需的改进。
所以我在 Visual Studio 2015 年构建了一个 MVC6 应用程序,并且已经设法解决了大部分问题,但是,我还没有完成部署。
在 MVC4(我之前使用的)中,我们的流程*被发布到一个文件夹,然后在 IIS 中设置网站(右键单击 Sites
-> Add Website
)。
- 实际上,我们的流程是在 IIS 和 TeamCity 中设置的,但不适用于这样的测试应用程序:)。
我遵循了这个过程,显然设置 IIS 网站并发布到正确的文件夹是微不足道的...但这对我来说实际上不起作用。
我们在 Windows Server 2012 上运行 IIS 8,我们已经在服务器上安装了 .Net 4.6 运行时。
以下步骤对我有用,应该可以帮助您在 IIS 上托管您的项目。
使用 Visual Studio 2015 预览作为您的 IDE,
- 创建一个 ASP .NET 5 入门应用程序。
- 检查它是否在 IIS 之外工作。
完成后,发布应用程序。在此示例中,我选择了位置
C:\PublishWebApp
.3.1。发布您的应用程序时,请确保您拥有:
- 禁用预编译
Selected amd64
(见下图)
- 发布成功后,转到
C:\PublishWebApp
。您应该会在里面看到文件夹approot
和wwwroot
。 - 现在打开 IIS 管理器(我假设您已启用 ASP .NET 4.5 功能)
创建一个新网站。
6.1 : Select
wwwrooot
文件夹作为网站的物理路径。本例中为C:\PublishWebApp\wwwroot
.检查网站是否正常。如果您遇到任何错误,请在此处post它们。
如果在上图中的发布 Web 设置 window 中勾选了预编译选项,那么您必须
- 转到您已发布的 Web 应用程序的
wwwroot
文件夹。在这个例子中,它是C:\PublishWebApp\wwwroot
. - 找到
web.config
. 在您发布的应用程序的文件夹中,
approot
文件夹中有一个packages
文件夹,其中应包含一个以您的应用程序命名的文件夹,其中一个文件夹用于下面的版本。该文件夹内应该有一个名为root
的文件夹。在web.config
中,将键kre-app-base
的值设置为root
文件夹。作为参考,请参阅下面的代码行。在此示例中,应用程序名称为 WebApplication10.<add key="kre-app-base" value="..\approot\packages\WebApplication10.0.0\root" />
我花了几个小时调试问题终于成功了,步骤:
1) 使用 visual studio 将您的 MVC6 应用程序发布到文件系统中,确保您选择了正确的 DNX 目标版本,在我的例子中是 dnx-clr-win-x64.1.0.0-rc1-update1。
在输出文件夹中将 "wwwroot" 文件夹映射到您在 IIS 中的应用程序(请勿将其映射到支持应用程序,只有 IIS 中的 ROOT 应用程序可以使用 DNX,例如 "Default Web Site")。
我刚刚花了一天的时间试图让它工作。我发现这个 here(搜索 GuardRex 的帖子)非常宝贵,完成已接受答案给出的步骤,这就是它的开始。
如果您尝试将应用程序添加到站点,几乎需要大量变通方法和额外配置,详见 link。
初学者:
1)确保安装了 HttpPlatform 处理程序here
2) 看起来很明显,但请确保您的服务器上安装了 .net5 here
我知道这是在向站点添加应用程序时发生的情况,但目前每个人都应该意识到部署过程中存在一些陷阱和急需的改进。