如何启动自托管WebListener Web端点?

时间:2016-11-29 19:17:13

标签: asp.net-core asp.net-core-mvc self-hosting asp.net-core-webapi

我编写了一个AspNetCore.Mvc,v.1.1.0应用程序,并使用WebListener服务器自我托管它。与我读过的文档一致,我没有使用IIS集成。 它在我的机器上很好地调试。当我将它发布到我的DEV服务器时,我可以在那里运行控制台并通过网络命中我的终端。我已正确配置

我的问题是关于使这个自托管WebListener应用程序作为Windows服务运行的最佳实践,该服务将在计算机启动时启动。我应该使用类似TopShelf的东西来做这件事,还是我不知道AspNetCore的原生内容?

我(或者我认为有)遵循这两个链接上的说明:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/hosting

http://andrewlock.net/configuring-urls-with-kestrel-iis-and-iis-express-with-asp-net-core/

1 个答案:

答案 0 :(得分:0)

首先,您需要配置您的应用以使用托管AspNetCore。

将这些内容添加到project.json

中的依赖项中
    "Microsoft.AspNetCore.Hosting": "1.0.0-*",
    "Microsoft.AspNetCore.Hosting.WindowsServices": "1.0.0-*"

以下是StartUp类的示例,我从未使用过WebListener,因此需要对其进行修改。

    var host = new WebHostBuilder()
            .UseIISIntegration()
            .UseKestrel()
            .UseContentRoot(@"Path\To\Content\Root")
            .UseStartup<Startup>()
            .Build();

    ///input logic depending on the Environment variables.
    host.RunAsService();

话虽这么说,我不明白你对IIS和Kestrel的厌恶。您必须在Windows计算机上才能作为服务运行。因此,IIS和Kestrel应该比WebListener更加适合调试。