У меня есть проект, который развернут в производство в качестве службы Windows. Однако для локальной разработки было бы полезно запустить его как консольное приложение. На данный момент у меня есть класс Called ReportingHost
, который обеспечивает мою основную функциональность, и класс ReportingServiceHost, который наследуется от ServiceBase
и позволяет мне запускать приложение как сервис. Существует также программный класс с методом main, который вызывает ServiceBase.Run
в моем ReportingServiceHost.
Я думаю, что мне нужно написать класс ReportingConsoleHost
, который позволит мне запускать функции в консоли. Затем мне нужно изменить мой Main
, чтобы он реагировал на переключатель командной строки и выбирал один или другой. Вот те два бита, с которыми у меня проблемы.
Я посмотрел на этот и попытался использовать этот код, но мое приложение закрывается немедленно, оно не показывает окно консоли и не ждет Enter перед закрытием.
Отчасти проблема в том, что у меня нет глубокого понимания того, как эти вещи работают. я надеюсь достичь определенного шаблона для разделения моей функциональности, двух разных способов ее запуска и основного метода, который выбирает один из этих способов на основе аргумента командной строки.