Вы можете определенно установить пакеты ASP.NET Core в свой проект .NET Core и создать WebHost
, который будет использоваться в качестве компонента веб-сервера в вашем приложении, как вы сказали сами.Простой способ сделать это - установить метапакет Microsoft.AspNetCore.App , который будет включать все зависимости пакетов, обычно используемые для приложений ASP.NET Core.
Как ASP.NET Core.технологии выходят за рамки моего ответа, с этого момента я буду использовать краткие примеры.
После того, как вы установили метапакет Microsoft.AspNetCore.App
в свой проект, вы можете приступить к созданию класса Startup
инициализировать ваш сервер и разработать приложение с использованием технологий ASP.NET Core.Простой Startup
класс, служащий примером:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
/* configure any services you need here */
}
public void Configure(IApplicationBuilder app)
{
// Output a "hello world" to the user who accesses the server
app.Use(async (context, next) =>
{
await context.Response.WriteAsync("Hello, world!");
});
}
}
Затем вы можете приступить к созданию веб-хоста с чем-то вроде этого:
IWebHost myHost = WebHost.CreateDefaultBuilder()
.UseStartup<Startup>()
.Build();
Наконец, вы должны вызвать Run()
метод для того, чтобы ваш веб-хост запустился и начал прослушивать соединения:
myHost.Run();
Запустите приложение, и сервер будет работать с некоторыми конфигурациями по умолчанию (вероятно, под http://localhost:5000/
адрес ... адрес сервера/ порт будет выводиться на вывод вашей консоли по умолчанию).Попробуйте получить доступ к серверу через браузер, и он должен напечатать вам «привет мир».
Метод Run()
является методом блокировки.Поскольку у вас уже есть консольное приложение, которое вы хотите «расширить» с помощью веб-хоста, вам, вероятно, следует проверить метод Start () , который запускает веб-хост без блокировки вашего консольного приложения, и вы можетеиспользуйте это для того, чтобы все еще иметь возможность делать что-то, например, принимать пользовательский ввод.Вот небольшой пример того, как сделать это на этой странице документа .