Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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
C# 信号员可能不在.NET 5中工作?无法解析类型为';Microsoft.AspNetCore.signer.IHubContext`1[iBet.Server.Hubs.ChatHub]';_C#_.net_Asp.net Core_Signalr - Fatal编程技术网

C# 信号员可能不在.NET 5中工作?无法解析类型为';Microsoft.AspNetCore.signer.IHubContext`1[iBet.Server.Hubs.ChatHub]';

C# 信号员可能不在.NET 5中工作?无法解析类型为';Microsoft.AspNetCore.signer.IHubContext`1[iBet.Server.Hubs.ChatHub]';,c#,.net,asp.net-core,signalr,C#,.net,Asp.net Core,Signalr,我正在尝试在.NET5和Angular 10应用程序中设置聊天,但到目前为止,后端部分使我处于停顿状态。每当我尝试访问聊天室控制器时,我都会 System.InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.SignalR.IHubContext`1[iBet.Server.Hubs.ChatHub]' while attempting to activate 'iBet.Serv

我正在尝试在.NET5和Angular 10应用程序中设置聊天,但到目前为止,后端部分使我处于停顿状态。每当我尝试访问聊天室控制器时,我都会

System.InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.SignalR.IHubContext`1[iBet.Server.Hubs.ChatHub]' while attempting to activate 'iBet.Server.Controllers.ChatController'.
这是控制器本身:

    [Produces("application/json")]
public class ChatController : ApiController
{
    private readonly IHubContext<ChatHub> _hubContext;

    public ChatController(IHubContext<ChatHub> hubContext)
    {
        _hubContext = hubContext;
    }

    [Route("send")]                                           
    [HttpPost]
    public IActionResult SendRequest([FromBody] MessageRequest message)
    {
        _hubContext.Clients.All.SendAsync("ReceiveOne", message.User, message.MessageText);
        return Ok(message.MessageText);
    }
}
[产生(“应用程序/json”)]
公共类聊天控制器:ApiController
{
私有只读IHubContext\u hubContext;
公共聊天控制器(IHubContext hubContext)
{
_hubContext=hubContext;
}
[路线(“发送”)]
[HttpPost]
公共IActionResult SendRequest([FromBody]MessageRequest message)
{
_hubContext.Clients.All.SendAsync(“ReceiveOne”,message.User,message.MessageText);
返回Ok(message.MessageText);
}
}
这是我的创业公司:

        public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();
        services.AddSignalR();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
        }
        app.UseCors(options => options
           .AllowAnyOrigin()
           .AllowAnyHeader()
           .AllowAnyMethod());

        app.UseRouting();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
            endpoints.MapHub<ChatHub>("/chatsocket");    
        });

    }
public void配置服务(IServiceCollection服务)
{
services.AddControllers();
services.AddSignalR();
}
//此方法由运行时调用。使用此方法配置HTTP请求管道。
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
其他的
{
app.UseExceptionHandler(“/Home/Error”);
//默认的HSTS值为30天。您可能希望在生产场景中更改此值,请参阅https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseCors(选项=>options
.AllowAnyOrigin()
.AllowAnyHeader()
.AllowAnyMethod());
app.UseRouting();
app.UseEndpoints(端点=>
{
endpoints.MapControllers();
endpoints.MapHub(“/chatsocket”);
});
}

据我所知,一旦您将services.AddSignalR()放入;它负责DI,但在.NET 5中似乎有所不同,任何建议都将不胜感激。

发现了问题,基本上该代码所在的整个项目都是一个微服务项目,聊天室所在的微服务使用的是.NET core 5预览版,而不是5.0.1或其他稳定版本,有一次我用5.0.1做了一个新项目,信号员工作得很好。发现问题,基本上这段代码所在的整个项目都是一个微服务项目,聊天的微服务使用的是.net core 5预览版,而不是5.0.1或其他稳定版本,有一次我用5.0.1做了一个新项目,信号器工作得很好。