gpt4 book ai didi

asp.net - 从 SignalR Hub 调用方法时出现问题。调用失败。 promise 被拒绝

转载 作者:太空狗 更新时间:2023-10-29 17:40:10 25 4
gpt4 key购买 nike

这个问题我已经坚持了一个多星期了,但找不到解决它的方法,因为我对 .NET 和 Angular 环境还很陌生。另外,我无法在互联网上找到适合我的问题的解决方案。

我有一项服务通过 REST api 每秒向我发送数据。我想在客户端检索这些数据,而不必连续重新加载整个页面。因此我选择了 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();
}
}
}
}

我不明白这是怎么回事。有任何想法吗?

最佳答案

我搞定了。代码没有任何问题。问题是防火墙出于某种原因阻止了对服务的请求。打开后,一切正常。

不幸的是,网络标签不是很清楚,我偶然发现了这个问题。

关于asp.net - 从 SignalR Hub 调用方法时出现问题。调用失败。 promise 被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52964911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com