Как я могу программно запустить и остановить проект .NetCore API Server из другого проекта .Net;в данном случае консольное приложение? - PullRequest
1 голос
/ 12 апреля 2019

У меня есть два проекта в моем решении Visual Studio;одно - консольное приложение .NET Framework, а другое - API-сервер .NETCore.

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

  • Я знаю, что не могу просто написать строку для запуска в своем консольном приложении
CreateWebHostBuilder(args).Build().Run();

Потому что это будет означать «добавить сервер в качестве ссылки для консольного приложения», и это не будет работать из-за несовместимости.

  • Iхотел запустить сервер из его файла .exe, но оказалось, что он запущен из службы IIS, которая передает в сгенерированную папку Release.Так что, похоже, это тоже невозможно.

  • Я нашел этот ответ из другого вопроса, но в нем говорится, что мы можем просто создать сервер с собственным хостом в нашем консольном приложении.

Я не уверен, что с точки зрения архитектуры было бы хорошей практикой сделать всю серверную часть моего проекта в "классе Server.cs".Я думал, что это будет лучше, как отдельный проект, который будет запущен из основного.


Пока у меня есть псевдо-результат: я запускаю оба проекта и заставляю сервер ждать сообщения Tcpsocket (для запуска или выхода) из консоли, но это определенно не так, ине так стабильно, как я хочу.

У кого-нибудь есть идеи, как поступить?

1 Ответ

0 голосов
/ 12 апреля 2019

Хорошо, я нашел способ ответить на другой вопрос о программном запуске .

В основном мне нужно скомпилировать мой проект API в .dll и запустить его позже с помощью команды

dotnet myServer.dll
...