刚开始学习ASP.NET 5 / MVC 6 我很好奇在IIS之外自我托管这样的应用程序 - 作为Windows服务。 我是否应该使用TopShelf,就像OWIN / Katana应用程序一样,或者ASP.NET 5是否通过NuGet包提供了一些内置的自托管(作为服务)选项?
答案 0 :(得分:2)
您可以使用Kestrel库进行自托管。
在project.json
文件中添加对库的依赖:
"dependencies": {
"EntityFramework.Commands": "7.0.0-rc1-final",
// Dependencies deleted for brevity.
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final"
}
然后为Kestrel发出此命令:
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
}
您可以通过命令行从MVC项目的文件夹中启动它:
dnx web
请注意,之前必须运行dnvm
。
答案 1 :(得分:1)
所有ASP.NET Core应用程序都是自托管的。
是的,你看对了!
public class Program
{
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddCommandLine(args)
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.Build();
var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration() //// Here IIS integration is optional
.UseStartup()
.Build();
host.Run();
}
}
查看here了解更多详情。