ASP.NET 5 RC1项目差异

时间:2015-12-30 22:31:04

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

我刚刚使用ASP.NET 5 MVC 6在VS 2015中创建了另一个测试项目。上次我使用的是运行时的beta-7。但是这一次,我正在使用RC1。

RC1版本的project.json文件:

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  }

beta-7版本的project.json文件:

"commands": {
    "web": "Microsoft.AspNet.Hosting --config hosting.ini"
  }

Kestrel是一个单声道平台,我不知道为什么默认模板会设置它而不是IIS或IIS Express?有人可以解释如何正确配置在RC1上运行的Web应用程序的IIS(首选)和IIS Express吗?虽然RC1站点正在运行并显示在IIS Express任务栏中,为什么要使用Kestrel配置条目?

切换到完整IIS和CoreCLR的步骤是什么?

1 个答案:

答案 0 :(得分:1)

ASP.NET 5附带了对3个不同服务器的支持:

Microsoft.AspNet.Server.IIS
Microsoft.AspNet.Server.WebListener (WebListener)
Microsoft.AspNet.Server.Kestrel (Kestrel)

您可以通过在project.json文件中指定命令,将您的应用程序配置为由任何或所有这些服务器托管。

启动服务器时,您可以为其提供一些配置选项。这可以使用命令行参数直接完成,也可以指定包含设置的配置文件。 Microsoft.AspNet.Hosting命令支持服务器使用的参数(例如Kestrel或WebListener)以及server.urls配置密钥,该密钥应包含服务器应处理的以分号分隔的URL前缀列表。

project.json文件演示了如何直接传递server.urls参数:

"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"

或者,可以引用配置文件,而不是:

"kestrel": "Microsoft.AspNet.Hosting --config hosting.ini"

然后,hosting.ini可以包含服务器将使用的设置(包括服务器参数):

server=Kestrel
server.urls=http://localhost:5000

此处参考和更多详细信息: http://docs.asp.net/en/latest/fundamentals/servers.html

此外,新Startup类中的Configure()方法允许指定要使用的处理程序,您可以指定  app.UseIISPlatformHandler() 使用适当的参数来使用IIS托管。

您的应用程序很可能在IIS(快速)托管下运行,因为您可能在“运行”选项中选择了IIS或IIS Express(在Visual Studio顶部的工具栏中)。如果您想使用Kestrel,请将其更改为“web”,然后它将在command-> web下选择project.json配置中指定的内容。