Asp.net core 连接握手失败,刷新页面时出现500错误-Abp Zero与Angular和.Net Core

Asp.net core 连接握手失败,刷新页面时出现500错误-Abp Zero与Angular和.Net Core,asp.net-core,signalr,aspnetboilerplate,abp,Asp.net Core,Signalr,Aspnetboilerplate,Abp,当我登录应用程序时,angular将ulr更改为https://baseurl/app/home和主页正确呈现。如果我刷新页面,就会出现服务器(500)错误。如果我删除地址栏中的/app/home部分并刷新,页面将重新加载而不会出现问题 在服务器端的日志中,我发现: 失败:Microsoft.AspNetCore.signal.HubConnectionContext[5] 连接握手失败。 我在两台不同的服务器上运行angular客户端和.net核心应用程序,CORS设置正确,客户端应用程序能够

当我登录应用程序时,angular将ulr更改为
https://baseurl/
app/home和主页正确呈现。如果我刷新页面,就会出现服务器(500)错误。如果我删除地址栏中的/app/home部分并刷新,页面将重新加载而不会出现问题

在服务器端的日志中,我发现: 失败:Microsoft.AspNetCore.signal.HubConnectionContext[5] 连接握手失败。

我在两台不同的服务器上运行angular客户端和.net核心应用程序,CORS设置正确,客户端应用程序能够连接到api。该应用程序运行良好,除非我刷新带有角度路由的页面

当我在开发机器上本地运行应用程序时,问题不会出现

我没有更改原始Abp Zero模板中的任何路由或信号机相关代码

在服务器上:

  • .NetCore 2.2

  • Abp零v 4.8

    在startup.cs文件中调用services.AddSignalR(),然后

    app.usesigner(路由=> { 路线。MapHub(“/信号机”); });

也在startup.cs文件中从配置方法调用。所有这些都是标准的tempate代码

在角度客户端中:

  • @aspnet/信号器v 1.1.4
在app.component.ts文件的OnInit中调用initSignalR()的未更改的SignalRAspNetCoreHelper:

import { AppConsts } from '@shared/AppConsts';
import { UtilsService } from '@abp/utils/utils.service';

export class SignalRAspNetCoreHelper {
    static initSignalR(): void {

        const encryptedAuthToken = new UtilsService().getCookieValue(AppConsts.authorization.encrptedAuthTokenName);

        abp.signalr = {
            autoConnect: true,
            connect: undefined,
            hubs: undefined,
            qs: AppConsts.authorization.encrptedAuthTokenName + '=' + encodeURIComponent(encryptedAuthToken),
            remoteServiceBaseUrl: AppConsts.remoteServiceBaseUrl,
            startConnection: undefined,
            url: '/signalr'
        };

        jQuery.getScript(AppConsts.appBaseUrl + '/assets/abp/abp.signalr-client.js');
    }
}
app-routing.module.ts也保持不变:

import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';
import { AppComponent } from './app.component';
import { AppRouteGuard } from '@shared/auth/auth-route-guard';
import { HomeComponent } from './home/home.component';
import { AboutComponent } from './about/about.component';
import { UsersComponent } from './users/users.component';
import { TenantsComponent } from './tenants/tenants.component';
import { RolesComponent } from 'app/roles/roles.component';
import { ChangePasswordComponent } from './users/change-password/change-password.component';

@NgModule({
    imports: [
        RouterModule.forChild([
            {
                path: '',
                component: AppComponent,
                children: [
                    { path: 'home', component: HomeComponent,  canActivate: [AppRouteGuard] },
                    { path: 'users', component: UsersComponent, data: { permission: 'Pages.Users' }, canActivate: [AppRouteGuard] },
                    { path: 'roles', component: RolesComponent, data: { permission: 'Pages.Roles' }, canActivate: [AppRouteGuard] },
                    { path: 'tenants', component: TenantsComponent, data: { permission: 'Pages.Tenants' }, canActivate: [AppRouteGuard] },
                    { path: 'about', component: AboutComponent },
                    { path: 'update-password', component: ChangePasswordComponent }
                ]
            }
        ])
    ],
    exports: [RouterModule]
})
export class AppRoutingModule { }
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const routes: Routes = [
    { path: '', redirectTo: '/app/home', pathMatch: 'full' },
    {
        path: 'account',
        loadChildren: 'account/account.module#AccountModule', // Lazy load account module
        data: { preload: true }
    },
    {
        path: 'app',
        loadChildren: 'app/app.module#AppModule', // Lazy load account module
        data: { preload: true }
    }
];

@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule],
    providers: []

})
export class RootRoutingModule { }
root-routing.module.ts(也未更改):


有什么问题吗?由于我没有更改任何内容,我想知道问题是否与环境/配置有关?

向我们展示您的信号器和asp.net的代码core@TonyNgo,我已尝试作进一步澄清。简言之,我使用的是开箱即用的模板,所以我有点困惑,为什么这不起作用。当我在localhost中同时运行客户端和后端时,它不会出现任何问题。我试图创建一个新的angular和dotnet核心项目,因为它已经工作了一段时间。我发现问题出在角度方面。如果你发现了什么,请像我一样把answare贴出来。