Использование Kestrel в рабочем проекте .NET CoreC#

Место общения программистов C#
Ответить
Anonymous
 Использование Kestrel в рабочем проекте .NET Core

Сообщение Anonymous »

Я создал новый рабочий проект .NET Core с помощью шаблона, предоставленного Visual Studio. Я хочу прослушивать входящие TCP-сообщения и HTTP-запросы. Я следую репозиторию Дэвида Фаулера «Многопротокольный сервер с ASP.NET Core и Kestrel» о том, как настроить Kestrel.
Насколько я знаю, все, что мне нужно сделать, это чтобы установить пакет Microsoft.AspNetCore.Hosting, чтобы получить доступ к методу UseKestrel.
В Program.cs > файл, которым я сейчас занимаюсь

Код: Выделить всё

public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService();
});
}
К сожалению, я не могу добавить UseKestrel к методу ConfigurationServices. Я думаю, это потому, что я работаю с интерфейсом IHostBuilder вместо интерфейса IWebHostBuilder.
Этот проект не должен быть проектом веб-API. , он должен оставаться рабочим проектом.
Как мне настроить Kestrel для этого?

Я попробовал заменить код на код из репозитория примеров:

Код: Выделить всё

using System.Net;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Connections;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;

namespace Service
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.ConfigureServices(services =>
{
// ...
})
.UseKestrel(options =>
{
// ...
});
}
}
При этом он по-прежнему не может разрешить WebHost и выдает следующие ошибки:

  • Не указан аргумент, соответствующий обязательному формальному параметру «промежуточное программное обеспечение» «ConnectionBuilderExtensions.Run(IConnectionBuilder, Func)»

  • Имя «WebHost» не существует в текущем контексте
Я думаю, это происходит потому, что рабочий проект не использует Web SDK.

Подробнее здесь: https://stackoverflow.com/questions/637 ... er-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»