如何在SignalR for ASP.NET Core 2.0中检查HubConnection.StartAsync的成功?

如何在SignalR for ASP.NET Core 2.0中检查HubConnection.StartAsync的成功?,signalr,asp.net-core-2.0,signalr.client,asp.net-core-signalr,Signalr,Asp.net Core 2.0,Signalr.client,Asp.net Core Signalr,使用SignalR for ASP.NET Core 2.0,客户端(1.0.0-alpha2-final),C#VS2017 要连接代码,请执行以下操作: wait hubConnection.StartAsync() 既然这是一个等待无效的等待,我们如何测试客户端是否成功连接?在我的测试中,我在服务器端的public override async Task OnConnectedAsync()中有一个断点,但该断点并不总是被击中,因此我知道有时客户端无法连接。或者它确实连接了,但是没有触发O

使用SignalR for ASP.NET Core 2.0,客户端(1.0.0-alpha2-final),C#VS2017

要连接代码,请执行以下操作:
wait hubConnection.StartAsync()
既然这是一个等待
无效
等待
,我们如何测试客户端是否成功连接?在我的测试中,我在服务器端的
public override async Task OnConnectedAsync()
中有一个断点,但该断点并不总是被击中,因此我知道有时客户端无法连接。或者它确实连接了,但是没有触发
OnConnectedAsync()

客户端如何知道它成功地建立了连接

谢谢

编辑:更多信息。当使用
localhost
(在VS中调试)时,它会触发
OnConnectedAsync()
;通过ngrok连接时,它不会触发OnConnectedAsync()
。也许这与代理/CORS有关,我不熟悉


编辑:客户端似乎确实连接了,因为如果我将URL更改为不存在的URL,它会给出404。因此,问题似乎在于当客户端通过ngrok连接时,
OnConnectedAsync()
不会触发,但当直接连接到本地主机时会触发。

StartAsync
不是一个
无效的方法,而是返回一个
任务。如果客户端未连接
StartAsync
throws(返回错误的任务),则在客户端成功连接后,异步调用将在没有错误的情况下完成(返回已完成的任务)。

您说得对。谢谢你指出这一点。更清楚的是,我的问题正如我在文章第二次编辑中所解释的:当端点(URL)不存在时,StartAsync会抛出。如果提供了正确的URL,则不会在服务器上引发,但当我使用localhost时,
OnConnectedAsync()
会触发,但当我通过代理(如ngrok)进行连接时不会触发。为什么?