Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core asp.net core 3.1-辅助服务模板-信号器实现_Asp.net Core_Signalr_Backgroundworker_Asp.net Core 3.1_Background Service - Fatal编程技术网

Asp.net core asp.net core 3.1-辅助服务模板-信号器实现

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

我正在尝试使用.NETCore3.1中的辅助服务向客户端广播消息。我没有任何Startup.cs(没有端点等)。我只有一个程序。cs:

公共类程序
{
公共静态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核心应用程序