Le problème :
Les utilisateurs se connectant à distance à un système Windows Server 2008 R2 rencontrent des erreurs « Serveur indisponible » et des délais d'attente de connexion, ce qui entraîne le message : « Erreur de serveur dans l'application '/'. Délai d'expiration expiré. Le délai d'attente s'est écoulé avant la fin de l'opération. ou le serveur ne répond pas. La déclaration a été interrompue."
Causes possibles :
Cette erreur de délai d'attente peut être causée par plusieurs facteurs :
Solutions et dépannage :
Voici comment résoudre ce problème :
Identifier les blocages : Utilisez le moniteur d'activité de SQL Server Management Studio pour détecter et résoudre tout processus bloqué.
Actualiser les statistiques de la base de données et vider le cache du plan de requête : Exécutez ces commandes dans SQL Server Management Studio :
<code class="language-sql">exec sp_updatestats dbcc freeproccache</code>
Forcer de nouveaux plans d'exécution : Configurez SQL Server pour empêcher la réutilisation de plans de requête potentiellement sous-optimaux.
Optimiser les requêtes : Si les étapes ci-dessus ne résolvent pas le problème, exécutez manuellement la requête problématique. Si c'est lent, optimisez la requête pour de meilleures performances.
Remarque importante :
L'extrait de code fourni suggère que le problème pourrait provenir de l'événement Application_Start
, où une procédure stockée (sp_OnlineUsers_Update_SessionEnd_And_Online
) met à jour plus de 482 751 enregistrements. Cette opération à grande échelle est probablement à l’origine du délai d’attente. Pour résoudre ce problème, envisagez de déplacer cette mise à jour vers un autre gestionnaire d'événements ou de la planifier en tant que tâche en arrière-plan pour éviter de bloquer le thread principal de l'application.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!