Asp.net core asp.net core 3.1-辅助服务模板-信号器实现
我正在尝试使用.NETCore3.1中的辅助服务向客户端广播消息。我没有任何Startup.cs(没有端点等)。我只有一个程序。cs:Asp.net core asp.net core 3.1-辅助服务模板-信号器实现,asp.net-core,signalr,backgroundworker,asp.net-core-3.1,background-service,Asp.net Core,Signalr,Backgroundworker,Asp.net Core 3.1,Background Service,我正在尝试使用.NETCore3.1中的辅助服务向客户端广播消息。我没有任何Startup.cs(没有端点等)。我只有一个程序。cs: 公共类程序 { 公共静态void Main(字符串[]args) { CreateHostBuilder(args.Build().Run(); } 公共静态IHostBuilder CreateHostBuilder(字符串[]args)=> Host.CreateDefaultBuilder(args) .UseWindowsService() .Confi
公共类程序
{
公共静态void Main(字符串[]args)
{
CreateHostBuilder(args.Build().Run();
}
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.UseWindowsService()
.ConfigureServices((主机上下文,服务)=>
{
//services.AddSignalR();
services.AddHostedService();
});
}
这是worker(worker.cs):
public class Worker:BackgroundService
{
专用只读ILogger\u记录器;
//专用只读IHubContext\u operatorHub;
公共工作者(ILogger logger/*,IHubContext Operator Hub*/)
{
_记录器=记录器;
//_operatorHub=operatorHub;
}
受保护的覆盖异步任务ExecuteAsync(CancellationToken stoppingToken)
{
同时(!stoppingToken.IsCancellationRequested)
{
//等待operatorHub.Clients.All.SendMessage(“他妈的世界你好!”);
_logger.LogInformation(“在:{time}运行的工作进程”,DateTimeOffset.Now);
等待任务。延迟(1000,停止待命);
}
}
}
从我从单独的文档中收集到的信息(但在互联网上没有关于这方面的文档)
这是我创建的一个接口(IMessage.cs):
公共接口IMessage
{
任务发送消息(字符串消息);
}
这是一个hub类(OperatorHub.cs):
公共类运算符Hub:Hub
{
公共异步任务广播消息(字符串消息)
{
等待客户。全部。发送消息(消息);
}
}
当我运行时,由于行services.AddSignalR(),我得到一个异常。
我试图在ConfigureServices下添加类似于services.AddSingleton()
的内容,但也没有成功
如果你能帮我一点忙,我将不胜感激。提前感谢。基本模板似乎不包含要用于signalr的库/包,nuget(.net package manager)必须包含,但用于添加它。尝试添加Microsoft.AspNetCore.signar
nuget软件包,或编辑.csproj文件以手动添加软件包,使其看起来与以下类似:
<Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.4"/>
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.1.0"/>
</ItemGroup>
</Project>
netcoreapp3.1
基本模板似乎不包括要用于signalr的库/包,nuget(.net package manager)必须包含该库/包,但用于添加该库/包。尝试添加Microsoft.AspNetCore.signar
nuget软件包,或编辑.csproj文件以手动添加软件包,使其看起来与以下类似:
<Project Sdk="Microsoft.NET.Sdk.Worker">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.4"/>
<PackageReference Include="Microsoft.AspNetCore.SignalR" Version="1.1.0"/>
</ItemGroup>
</Project>
netcoreapp3.1
Configure
方法中有什么?默认模板中没有Configure方法,这就是全部代码。我已经看到了您对其他类似问题的回答,并且我已经尝试实施了您提出的建议,但它不适用于此模板。您的配置
方法有哪些内容?默认模板中没有配置方法,这就是全部代码。我已经看到了你对其他类似问题的回答,并且我已经尝试实施了你提出的建议,但它不适用于此模板。我已经这样做了。使用nuget软件包,它不起作用。您是在GitHub上托管它,还是有地方可以看到更多代码。我能够用itI制作一个worker.net核心应用程序,我已经做到了。使用nuget软件包,它不起作用。您是在GitHub上托管它,还是有地方可以看到更多代码。我能够用它制作一个worker.net核心应用程序