J'ai un service Web qui fonctionne correctement depuis quelques années sans modification. Soudainement, il décide aujourd'hui qu'il n'aimerait pas fonctionner et lance un délai SQL:Dépannage de SQL Server Timeout
System.Data.SqlClient.SqlException: Expiration du délai. Le délai d'expiration s'est écoulé avant la fin de l'opération ou le serveur ne répond pas. Il est intéressant de noter que ce service web vit sur le même serveur que la base de données, et que si je retire la requête d'une trace SQL et l'exécute en studio de gestion, elle revient en moins d'une seconde. Mais il est temps de sortir après exactement 30 secondes lorsqu'il est appelé du service Web sans faute. J'utilise la bibliothèque d'entreprise pour me connecter à la base de données, donc je ne peux pas m'imaginer que cela a commencé de façon aléatoire.
Je ne suis pas sûr de ce qui pourrait soudainement le faire cesser de fonctionner. J'ai recyclé le pool d'applications dans lequel il se trouve et j'ai même redémarré le processus SQL que je voyais utiliser. Même comportement De toute façon je peux résoudre ce problème?
MISE À JOUR: Mitch cloués il. Dès que j'ai ajouté "WITH RECOMPILE" avant le mot-clé "AS" dans la définition de sproc, il est revenu à la vie. Bravo!
@Chris: Veuillez noter que vous ne devez pas ajouter WITH RECOMPILE à moins que ce ne soit une dernière chose. Utiliser RECOMPILE FOR est beaucoup plus ciblé –