SignalR 仅发送前两条消息

SignalR is only sending the first two messages

我有一个 .Net MVC 网络应用程序,我正在使用 SignalR 来实现进度条功能。 我有一个视图正在使用 JQuery:
对动作进行 Ajax POST $.ajax({ url: actionUrl, type: 'POST', data: { ids: ids }, success: function (data) { ... } });

控制器在循环内处理信息,每 n 次迭代都使用 signalr 向集线器发送消息。客户端连接到集线器并使用消息中的信息更新进度条。
我使用以下代码打开与信号集线器的连接:
var connection = new HubConnection("<a href="http://localhost/" rel="nofollow">http://localhost/</a>"); connection.Credentials = CredentialCache.DefaultNetworkCredentials; this.proxy = connection.CreateHubProxy("progressHub"); connection.Start().等待(); 然后用这个发送信息:
proxy.Invoke("ProgressChanged", taskId, progress);
这对于前两个更新工作正常,但从那以后它不再工作,直到漫长的过程结束,当我收到所有剩余的消息时。我收到这样的信息:

0% 完成
完成 5%
...(过程完成时长时间停顿)
10%、15%、20%、25% 等(所有这些消息汇集在一起​​)

始终是前两条消息,而不是随机数条消息。
您知道我可能缺少的任何配置吗?
我尝试在每条消息后添加睡眠并使操作异步并向每条消息添加 .Wait() ,但它始终是相同的行为。
我在 IISExpress 和完整的 IIS 8 中试过了。

您在控制器中的操作方法应该是 async 并调用一个异步任务。我的猜测是,当您的 ajax 调用正在等待完成时,signalR 发出的调用可能会排队,直到您的进程完成并结束 ajax 请求。