我对Angular很新,请执行可能愚蠢的问题。
我尝试在localhost:5000上托管一个asp.net Kestrel服务器,它将为进度报告提供SignalR服务。 我使用Angular 5创建的网站应该连接到此网站(网站将通过localhost:4200调用,或者只打开文件://.....etc../index.html)。
我已经通过NPM安装了@ aspnet / signalr-client软件包。我没有对我的项目进行任何其他手动修改(没有polyfill或其他任何可能的修改)。
然后我编辑了我的主要组件.TS以包含
import { HubConnection } from '@aspnet/signalr-client';
到目前为止仍然可以正常工作。但后来我添加了一个私有变量
private _hubConnection: HubConnection;
在ngOnInit()函数中,我正在调用
this._hubConnection = new HubConnection('/progress');
现在,访问该网站将在Internet Explorer 11中引发错误,即错误:语法错误。如果我正确地读取调试器,它似乎在一些代码中的signalr-client / dist / src / HttpContext.js中
eval("\n// Copyright (c) .NET Foundation. All rights reserved.\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) {
... etc ...
我完全无能为力。我是否需要对我的项目进行任何其他手动修改,包括任何其他文件等? 难道它无法连接到我的SignalR进度服务器,因此抛出这个奇怪的错误或某些东西?
由于
答案 0 :(得分:1)
您在两个不同的应用上托管您的应用和信号R,因此您必须指定signalR应用的绝对网址。
this._hubConnection = new HubConnection('http://localhost:5000/signalr/progress');
您的网络应用的端口号与您的signalR应用不同,请不要忘记允许使用CORS,因为Chrome和Firefox会出现跨域错误。
答案 1 :(得分:1)
啊,好像这是标准软件包与IE11的不兼容,请参阅
https://github.com/aspnet/SignalR/issues/777
我试图通过
来规避这个问题import { HubConnection } from '@aspnet/signalr-client/dist/browser/signalr-clientES5-1.0.0-alpha2-final.js';