Я цепляюсь за проблему уже более недели и не могу найти способ ее исправить, потому что я довольно плохо знаком с .NET и угловой средой.Кроме того, я не могу найти в Интернете решение, которое бы соответствовало моей проблеме.
У меня есть служба, которая отправляет мне данные каждую секунду через API REST.Я хотел бы получить эти данные в клиенте без необходимости постоянно перезагружать всю страницу.Поэтому я выбрал SignalR.
Пока все работает, и соединение с концентратором установлено.Но когда я пытаюсь вызвать метод из концентратора, я получаю сообщение об ошибке:
Invoking 'GetPerformanceSnapshotData' failed. Rejecting promise...
Promise rejected.
ErrorObservable {_isScalar: false, error: Error: An error occurred while sending the request.
at Object.error (http://localhost:4200/scrip......, scheduler: undefined}
error: Error. An error occurred while sending the request: An error occurred while sending the request. at Object.error (http://localhost:4200/...)...
Это мой метод вызова на клиенте:
public GetPerformanceSnapshotData() {
this.connect().then((connection) => {
this.invoke("GetPerformanceSnapshotData").then((data: string) => {
console.log(data);
}).catch(error => {
this.dialogService.showError(error);
return Observable.throw(error);
});
}).catch(error => {
this.dialogService.showError(error);
return Observable.throw(error);
});
}
}
Метод на стороне сервера выглядит следующим образом:
namespace ...
{
using System.Threading.Tasks;
using System.Net.Http;
using Microsoft.AspNet.SignalR;
public class PerformanceSnapshotHub : Hub
{
public async Task<string> GetPerformanceSnapshotData()
{
using (var client = new HttpClient(new HttpClientHandler { UseDefaultCredentials = true }))
{
var response = await client.GetAsync("http://localhost:8080/api/PerformanceSnapshot");
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
}
}
Я не понимаю, в чем дело.Есть идеи?