web-dev-qa-db-fra.com

Délai d'expiration du serveur ASP.NET CORE 2.1 lors du débogage

'Erreur: le délai d'attente du serveur s'est écoulé sans recevoir de message du serveur.'.

J'essaie de déboguer un code côté serveur et, ce faisant, le client est déconnecté en moins d'une minute.

J'utilise uniquement SignalR pour communiquer avec les clients, sans contrôleur pour le moment.

Y at-il un paramètre qui peut désactiver le délai d’expiration ou au moins le rendre plus long qu’il ne l’est actuellement?

mon launchSettings.json:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:26793",
      "sslPort": 44386
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HTTPS_PORT": "44386"
      }
    },
    "Api": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000"
      }
    }
  }
}
7
Arhire Ionut

Merci à @Arhire Ionut

Voici comment augmenter le délai d'attente du client Javascript 

hubConnection.serverTimeoutInMilliseconds = 100000; // 100 second

Plus de détails ici => https://github.com/aspnet/Docs/issues/6885

4
Mahmoud Farahat

Ce que @MahmoudFarhat a mentionné dans une autre réponse est correct. Mais regardez aussi ce lien et lisez mes commentaires ci-dessous.

Si signalR s'est déconnecté, essayez de rétablir la connexion. La connexion peut être interrompue pour plusieurs autres raisons, notamment le changement de réseau d'utilisateur. Par exemple, si l'utilisateur utilise un téléphone portable et est connecté au réseau Wi-Fi domestique/professionnel, mais décide de se connecter à une connexion de données cellulaire.

Pour vous reconnecter, vous pouvez utiliser les éléments suivants (fonctionne comme un charme pour moi):

// re-establish the connection if connection dropped
connection.onclose(() => setTimeout(startSignalRConnection(connection), 5000));

startSignalRConnection est:

const startSignalRConnection = connection => connection.start()
  .then(() => console.info('Websocket Connection Established'))
  .catch(err => console.error('SignalR Connection Error: ', err));

et la connexion est

const connection = new HubConnectionBuilder()
  .withUrl(connectionHub, options)
  .withHubProtocol(protocol)
  .build();
1
xeiton