У меня есть два проекта в моем решении Visual Studio;одно - консольное приложение .NET Framework, а другое - API-сервер .NETCore.
Я хочу иметь возможность запускать и останавливать сервер с консоли.
- Я знаю, что не могу просто написать строку для запуска в своем консольном приложении
CreateWebHostBuilder(args).Build().Run();
Потому что это будет означать «добавить сервер в качестве ссылки для консольного приложения», и это не будет работать из-за несовместимости.
Iхотел запустить сервер из его файла .exe
, но оказалось, что он запущен из службы IIS, которая передает в сгенерированную папку Release.Так что, похоже, это тоже невозможно.
Я нашел этот ответ из другого вопроса, но в нем говорится, что мы можем просто создать сервер с собственным хостом в нашем консольном приложении.
Я не уверен, что с точки зрения архитектуры было бы хорошей практикой сделать всю серверную часть моего проекта в "классе Server.cs".Я думал, что это будет лучше, как отдельный проект, который будет запущен из основного.
Пока у меня есть псевдо-результат: я запускаю оба проекта и заставляю сервер ждать сообщения Tcpsocket (для запуска или выхода) из консоли, но это определенно не так, ине так стабильно, как я хочу.
У кого-нибудь есть идеи, как поступить?