У нас есть собственное приложение на C # .NET, которое мы пытаемся поместить в контейнеры Windows. Изначально приложение было разработано для работы в качестве службы, но кажется, что контейнеры лучше запускать как процесс. Поэтому разработчики внесли небольшие изменения, и теперь мы можем запустить приложение из командной строки. Он успешно работает на Win 10, 2012 R2, 2016 и 2019.
Однако при попытке запустить точно такое же приложение в контейнере 2016 или 2019 года мы получаем сообщение об ошибке:
Невозможно запустить службу из командной строки или отладчика. Сначала необходимо установить службу Windows (с помощью installutil.exe), а затем запустить ее с помощью ServerExplorer, средства администрирования служб Windows или команды NET START.
Почему запуск в контейнере изменит способ запуска приложения? Для приложения не существует зависимостей (кроме .NET), которые не включены в приложение.
Я могу успешно установить приложение в качестве службы в контейнере и запустить службу без ошибок. Однако попытка свернуться http://localhost в контейнере или вне контейнера завершается неудачей, даже если порт открыт через опцию -p 80:80
из запуска Docker.
Я видел, как предыдущие версии этого приложения успешно выполнялись в док-контейнере как процесс, поэтому я считаю, что это должно быть какое-то предостережение в C #, но я не разработчик, и я получаю стандарт ", на котором он работает хозяин, это должно быть докер ", ответ от наших разработчиков.