Хостинг ASP.NET Core в качестве службы Windows

Как я понял в RC2, есть поддержка хостинга приложений в Windows Services. Я попытался протестировать его на простом проекте веб-API (с использованием .NET Framework 4.6.1).

Вот мой код Program.cs:

using System;
using System.IO;
using System.Linq;
using System.ServiceProcess;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Hosting.WindowsServices;

namespace WebApplication4
{
  public class Program : ServiceBase
  {
    public static void Main(string[] args)
    {
      if (args.Contains("--windows-service"))
      {
        Run(new Program());
        return;
      }

      var program = new Program();
      program.OnStart(null);
      Console.ReadLine();
      program.OnStop();
    }

    protected override void OnStart(string[] args)
    {
      var host = new WebHostBuilder()
      .UseKestrel()
      .UseContentRoot(Directory.GetCurrentDirectory())      
      .UseStartup<Startup>()
      .Build();

      host.RunAsService();
    }

    protected override void OnStop() {}
  }
}

Все остальные вещи в основном взяты из шаблона .NET Core (хотя я изменил framework на net461 и добавил некоторые зависимости в project.json).

После публикации сdotnet publish и создание службы Windows сsc create Я могу успешно запустить службу, но не могу связаться ни с одним из моих контроллеров (порты не перечислены). Я предполагаю, что я делаю что-то не так.

Поэтому я думаю, что главный вопрос заключается в том, как создать самодостаточный веб-API и запустить его в качестве службы Windows. Все найденные решения не работают после обновления RC2.

Ответы на вопрос(7)

Ваш ответ на вопрос