2017-02-09 2 views
0

Tâche annulée sur attente Groups.Add (groupId, Context.ConnectionId); existe toujours avec WebSockets sur Win8. Comment augmenter le délai de signalement si cette demande prend plus de 30 secondes?Tâche annulée en attente dans Groups.Add (groupId, Context.ConnectionId);

Une tâche était canceled.mscorlibStackTrace: --- à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tâche la tâche) à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (tâche Tâche)

S'il vous plaît aider moi dehors.

+1

Vous n'augmenterez pas ce délai. Je chercherais la raison pour laquelle vous avez ce délai. – Tester

Répondre

0

Probablement, vous ne devriez pas augmenter le délai d'expiration. S'il vous plaît regardez ce question car il explique le comportement que vous pouvez observer. Une action appropriée consisterait à vérifier le problème mentionné du côté client et à le gérer en conséquence, sans augmenter le délai d'attente.

Mais comme vous l'avez demandé, voici comment vous pouvez le faire. Ajoutez ceci dans la classe de démarrage.

// 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); 

Vous devez augmenter DisconnectTimeout. Et il y a une petite chose à garder à l'esprit: l'ordre de réglage KeepAlive et DisconnectTimeout est important. Si vous définissez DisconnectTimeout après avoir défini KeepAlive, il écrase la valeur KeepAlive.

+0

Dans mon cas, je n'ai qu'un seul centre où j'ai fait une poignée de main et faire un appel de groupe. Y at-il un moyen quelconque où SR nous fournit la liste des clients connectés du côté serveur où je peux suivre l'état du client. Comme je l'ai trouvé après R & D, nous devons faire une liste personnalisée qui met à jour à plusieurs reprises sur les événements connectés et déconnectés de SR. Toujours avoir le même problème comment se débarrasser de this.please m'aider. –

+0

Non, il n'y a aucun moyen d'obtenir la liste des utilisateurs connectés - c'est vrai. Vous devez remplacer les méthodes OnConnected et OnDisconnected d'un concentrateur et créer votre liste d'utilisateurs connectés par vous-même. – cassandrad