我使用Visual Studio提供的模板创建了一个新的.NET Core worker项目。我想监听传入的TCP消息和HTTP请求。我正在遵循David Fowler的“ASP.NET Core和Kestrel多协议服务器”存储库中的说明来设置Kestrel。
据我所知,我所需要做的就是安装Microsoft.AspNetCore.Hosting包以获取对
在Program.cs文件中,我正在执行以下操作
很遗憾,我无法将
当这样做时,仍然无法解决
据我所知,我所需要做的就是安装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<Worker>();
});
}
很遗憾,我无法将
UseKestrel
添加到ConfigureServices
方法中。我认为这是因为我正在使用IHostBuilder
接口而不是IWebHostBuilder
接口。
该项目不应该是Web API项目,它应该保持为Worker项目。
有什么想法可以配置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<ConnectionContext,Task>)”的必需形式参数'middleware'相应的参数
-
名称“WebHost”在当前上下文中不存在