【问题标题】:How to launch self-hosted WebListener web endpoint?如何启动自托管 WebListener Web 端点?
【发布时间】:2016-11-29 19:17:12
【问题描述】:

我已经编写了一个 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/

【问题讨论】:

  • 如果机器启动时IIS启动。您的应用也应该如此。
  • 我已经编辑了我的问题以反映我在这里没有使用 IIS,因为据我了解,WebListener 和 IIS 没有结合使用。

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 2018-07-21
    • 2016-11-29
    • 2020-10-21
    • 2016-05-31
    • 2022-12-19
    • 1970-01-01
    相关资源
    最近更新 更多