Asp.net core mvc 如何自托管ASP.NET 5 MVC6应用程序

Asp.net core mvc 如何自托管ASP.NET 5 MVC6应用程序,asp.net-core-mvc,Asp.net Core Mvc,刚刚开始学习ASP.NET5/MVC6 我对在IIS之外作为Windows服务自托管这样一个应用感到好奇。 我应该使用TopShelf吗,就像OWIN/Katana应用程序一样,还是ASP.NET 5通过NuGet软件包提供一些内置的自托管(即服务)选项?您可以使用该库进行自托管。 将依赖项添加到project.json文件中的库中: "dependencies": { "EntityFramework.Commands": "7.0.0-rc1-final", // Depen

刚刚开始学习ASP.NET5/MVC6 我对在IIS之外作为Windows服务自托管这样一个应用感到好奇。 我应该使用TopShelf吗,就像OWIN/Katana应用程序一样,还是ASP.NET 5通过NuGet软件包提供一些内置的自托管(即服务)选项?

您可以使用该库进行自托管。 将依赖项添加到
project.json
文件中的库中:

"dependencies": {
    "EntityFramework.Commands": "7.0.0-rc1-final",
    // Dependencies deleted for brevity.
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final"
}
然后为红隼指定以下命令:

"commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
}
您可以通过命令行从MVC项目的文件夹中启动它:

dnx web

请注意,必须先运行
dnvm

所有ASP.NET核心应用程序都是自托管的

是的,你读对了

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();
    }
}

查看更多详细信息。

dnx将作为Windows后台服务运行吗?不,它将作为Windows进程运行。因此,一旦启动它的控制台窗口关闭,该进程将终止,还是将继续在后台运行?例如,您可以在Windows Scheduler中指定新任务。然后它将在后台模式下运行。或者使用第三方工具将流程作为服务运行。此示例使用owin并托管在windows服务中-