我刚刚用ASP.NET 5 MVC 6在VS 2015中创建了另一个测试项目。上一次我使用运行时的beta-7。然而,这一次,我使用的是RC1。
用于project.json版本的RC1文件:
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}beta-7版本的project.json文件:
"commands": {
"web": "Microsoft.AspNet.Hosting --config hosting.ini"
}Kestrel是一个mono平台,我不知道为什么默认模板会设置它,而不是IIS或IIS?有人能解释如何为运行在RC1上的Web应用程序正确配置IIS (更好)和IIS吗?虽然RC1站点正在运行并显示在IIS任务栏中,但为什么要使用Kestrel条目呢?
切换到完全IIS和CoreCLR的步骤是什么?
发布于 2015-12-31 17:40:42
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
此外,新启动类中的配置()方法允许指定使用哪个处理程序,并且可以用适当的参数指定app.UseIISPlatformHandler()来使用IIS宿主。
您的应用程序很可能在IIS ( Express )宿主下运行,因为您可能在"Run“选项(在Visual顶部的工具栏中)中选择了IIS或IIS Express。如果您想使用Kestrel,请将其更改为"web“,然后它将选择命令-> project.json中指定的内容。
https://stackoverflow.com/questions/34538271
复制相似问题