问题可能是由于路由配置不正确导致的。在ASP.NET Core 2.2中,使用Angular和SignalR的路由配置可能会有一些特殊的需求。
下面是一个可能的解决方案,其中包括了一个示例代码:
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    app.UseSignalR(routes =>
    {
        routes.MapHub("yourhub");
    });
    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller}/{action=Index}/{id?}");
        // 添加一个特殊的路由以处理Angular路由请求
        routes.MapSpaFallbackRoute(
            name: "spa-fallback",
            defaults: new { controller = "Home", action = "Index" });
    });
    ...
}
 
在Angular的app-routing.module.ts文件中,确保你有一个路由处理SignalR的请求。这可能看起来像这样:
const routes: Routes = [
  ...
  { path: 'yourhub/negotiate', component: YourHubNegotiateComponent },
  ...
];
在Angular应用程序中创建一个名为YourHubNegotiateComponent的组件。这个组件将负责处理SignalR的Negotiate请求并返回结果。
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
  selector: 'app-your-hub-negotiate',
  template: ''
})
export class YourHubNegotiateComponent implements OnInit {
  constructor(private http: HttpClient) { }
  ngOnInit() {
    this.http.get('/yourhub/negotiate').subscribe(result => {
      // 处理结果
    });
  }
}
通过以上步骤,你应该能够正确处理SignalR的Negotiate请求,并避免返回404错误。当然,具体解决方法可能因你的应用程序结构而异,但上述步骤提供了一个基本的解决方案。