如何配置 MVC6 应用程序以在 IIS 上运行?
Posted
技术标签:
【中文标题】如何配置 MVC6 应用程序以在 IIS 上运行?【英文标题】:How to configure an MVC6 app to work on IIS? 【发布时间】:2015-01-09 03:43:10 【问题描述】:所以我在 Visual Studio 2015 中构建了一个 MVC6 应用程序,并且已经设法解决了大部分问题,但是,我还没有进行部署。
在 MVC4(我之前使用的)中,我们的进程*被发布到一个文件夹,然后在 IIS 中设置网站(右键单击 Sites
-> Add Website
)。
我遵循了这个过程,显然设置 IIS 网站并发布到正确的文件夹很简单......但这实际上对我不起作用。
我们在 Windows Server 2012 上运行 IIS 8,并在服务器上安装了 .Net 4.6 运行时。
【问题讨论】:
您能否详细说明您认为它不起作用的原因? @Cory - 我收到一个错误页面,告诉我我没有查看文件夹的权限。 你能告诉我们文件夹结构吗? 如果是什么?在服务器框中,该站点已发布到c:\inetpub\websites\sitename
。发布的站点有一个 src 和 wwwroot 文件夹以及 3 个.cmd
文件
【参考方案1】:
以下步骤对我有用,应该可以帮助您在 IIS 上托管您的项目。
使用 Visual Studio 2015 Preview 作为您的 IDE,
-
创建一个 ASP .NET 5 Starter 应用程序。
检查它是否在 IIS 之外工作。
完成后,发布应用程序。在本例中,我选择了位置C:\PublishWebApp
。
3.1。发布您的应用程序时,请确保您拥有:
禁用预编译选择amd64
(见下图)
-
成功发布后,转到
C:\PublishWebApp
。您应该会在里面看到approot
和wwwroot
文件夹。
现在打开 IIS 管理器(我假设您已启用 ASP .NET 4.5 功能)
创建一个新网站。
6.1 : 选择wwwrooot
文件夹作为网站的物理路径。在这个例子中,它是C:\PublishWebApp\wwwroot
。
检查网站以查看它是否正常工作。如果您遇到任何错误,请在此处发布。
如果在上图的 Publish Web Settings 窗口中勾选了预编译选项,那么您必须
-
转到您已发布的 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\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
我知道,如果您要向站点添加应用程序,那么现在每个人都应该知道部署过程中存在一些陷阱和急需的改进。
【讨论】:
以上是关于如何配置 MVC6 应用程序以在 IIS 上运行?的主要内容,如果未能解决你的问题,请参考以下文章
在 IIS 上使用 .NET Core 运行 ASP.NET 5 (MVC 6)
如何使用 ASP.NET Core RC2 MVC6 和 IIS7 获取当前 Windows 用户
HTTP 错误 403.14 - 禁止 asp.net 5 和 MVC 6 iis10