我已经编写了一个AspNetCore.Mvc 1.1.0版应用程序,并且正在使用WebListener服务器对其进行自我托管。与我阅读的文档保持一致,我没有使用IIS-Integration。
它在我的机器上调试很好。将其发布到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/

最佳答案

首先,您需要配置您的应用程序以与托管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更易于调试。

关于asp.net-core - 如何启动自托管的WebListener Web终结点?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40874039/

10-11 06:54