任务在await Groups.Add(groupId,Context.ConnectionId)上取消了问题;

时间:2017-02-09 08:31:59

标签: signalr signalr-hub signalr.client

任务在await Groups.Add(groupId,Context.ConnectionId)上取消了问题;仍然存在Win8上的WebSockets。 如果此请求超过30秒,我怎样才能增加信号器的超时时间。

任务被取消.mscorlibStackTrace:--- 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)

请帮帮我。

1 个答案:

答案 0 :(得分:0)

可能你不应该增加超时。请查看此question,因为它解释了您可以观察到的行为。适当的操作是在客户端检查提到的问题并相应地处理它,而不是增加超时时间。

但正如你问的那样,这就是你如何做到的。在Startup类中添加它。

// Make long polling connections wait a maximum of 110 seconds for a
// response. When that time expires, trigger a timeout command and
// make the client reconnect.
GlobalHost.Configuration.ConnectionTimeout = TimeSpan.FromSeconds(110);

// Wait a maximum of 30 seconds after a transport connection is lost
// before raising the Disconnected event to terminate the SignalR connection.
GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(30);

// For transports other than long polling, send a keepalive packet every
// 10 seconds.
// This value must be no more than 1/3 of the DisconnectTimeout value.
GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(10);

您需要增加DisconnectTimeout。并且要记住一件小事:设置KeepAliveDisconnectTimeout的顺序非常重要。如果您在设置DisconnectTimeout后设置KeepAlive,则会覆盖KeepAlive值。