Asp.net core 连接握手失败,刷新页面时出现500错误-Abp Zero与Angular和.Net Core
当我登录应用程序时,angular将ulr更改为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设置正确,客户端应用程序能够
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(“/信号机”); });
- @aspnet/信号器v 1.1.4
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贴出来。