Как запустить автономную конечную точку WebListener?

Я написал приложение AspNetCore.Mvc, v. 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/


person MalcLear    schedule 29.11.2016    source источник
comment
Если IIS запускается при запуске машины. Ваше приложение тоже должно.   -  person christopher clark    schedule 29.11.2016
comment
Я отредактировал свой вопрос, чтобы отразить, что я здесь не использую IIS, поскольку, насколько я понимаю, WebListener и IIS не объединены.   -  person MalcLear    schedule 29.11.2016


Ответы (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.

person christopher clark    schedule 29.11.2016