如何自托管ASP.NET 5 MVC6应用程序

时间:2016-02-11 04:07:25

标签: asp.net-core-mvc

刚开始学习ASP.NET 5 / MVC 6 我很好奇在IIS之外自我托管这样的应用程序 - 作为Windows服务。 我是否应该使用TopShelf,就像OWIN / Katana应用程序一样,或者ASP.NET 5是否通过NuGet包提供了一些内置的自托管(作为服务)选项?

2 个答案:

答案 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了解更多详情。