如何配置MVC6应用程序以在IIS上工作?
因此,我在Visual Studio 2015中构建了一个MVC6应用程序,并设法将大部分内容都映射出来,但是,我还没有制定出部署方案。如何配置MVC6应用程序以在IIS上工作?
在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。当发布应用程序时,请确保您有:
- 禁用预编译
-
选择AMD64
(见下文图)
- 成功发布后,请转至
C:\PublishWebApp
。您应该在里面看到文件夹approot
和wwwroot
。 - 现在打开IIS管理器(我假设你已启用ASP .NET 4.5功能)
-
创建一个新网站。
6.1:选择
wwwrooot
文件夹作为网站的物理路径。在这个例子中,它是C:\PublishWebApp\wwwroot
。 检查网站,看看它是否工作。如果您遇到任何错误,请在此处张贴。
如果预编译选项在上图中发布Web设置窗口中勾选,则必须
- 转到您发布的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" />
谢谢,我会在星期一试试这个 - 我想我在发布期间有预编译问题,所以希望这是问题:)。 – Maverick
如果预编译选项被打勾,那么它也将工作。但为此,你必须做小设置。我会更新我的答案。 – dotnetstep
为了解决这个问题,我打开了预编译的应用程序配置文件,重要的是将IIS指向了'wwwroot'文件夹。我的实际问题是我有IIS指向我发布到相同的文件夹 - 这是不正确的:)。大规模n00b移动。附:谢谢@dotnetstep! – Maverick
我花了几个小时的调试问题终于得到了它的工作,步骤:
1)使用视觉工作室到文件系统中发布您的MVC6应用程序,确保您选择正确的DNX目标版本在我的情况下,它的dnx-clr-win-x64.1.0.0-rc1-update1。
在IIS中输出文件夹映射“wwwroot”文件夹到您的应用程序(不要将它映射到应用程序,只有ROOT应用程序在IIS中与DNX一起使用,例如“Default Web Site”)。
这些都已被接受的答案覆盖了吗? – Maverick
你能否更详细地描述你为什么认为它不起作用? –
@Cory - 我收到一个错误页面,告诉我我没有权限查看该文件夹。 – Maverick
你能告诉我们文件夹结构吗? –