Разместите основное приложение aspnet с портами, определенными в UseKestrel - PullRequest
0 голосов
/ 07 ноября 2018

Я хочу разместить свое приложение на сервере Windows. Я хочу использовать Mqtt поверх tcp и WebSosckets.

Если я публикую в IIS с помощью WebDeploy, я не могу достичь портов (1883 и 5000), указанных в Program.cs

       `private static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseKestrel(o => {
                o.ListenAnyIP(1883, l => l.UseMqtt());
                o.ListenAnyIP(5000); // default http pipeline
            })
            .UseIISIntegration()    
            .UseStartup<Startup>()
            .Build();`

, но если я использую dotnet run (на сервере), все в порядке, и я могу получить доступ к mqqt через порт 1883

Есть ли способ опубликовать приложение в IIS и при этом иметь доступ к этим портам? Чего мне не хватает?

1 Ответ

0 голосов
/ 08 ноября 2018

Для хостинга в IIS, UseKestrel используется для настройки Kestrel Server, а IIS - для обратного прокси. Сначала запросы от клиента отправляются в IIS, а затем направляются в Kestrel.

Итак, если вы хотите иметь доступ к веб-приложению с номера 1883, вам необходимо настроить веб-сайт в iis с портом 1883.

Вы можете создать новый сайт с 1883 из IIS, а затем опубликовать свой проект на этом сайте из VS Web Deploy.

enter image description here

...