2010-08-12 5 views
0

Je fais un test unitaire contre mon projet. Dans un cas, je dois arrêter le serveur sql et vérifier si mon application peut gérer une telle exception avec élégance.La connexion au serveur sql échoue après le redémarrage du serveur sql

mais j'ai trouvé que, après l'exécution de ce scénario de test, toute exécution de cas de test échouait si le cas de test devait accéder à la base de données. et l'erreur était "erreur de niveau de transport".

Dans chaque cas de test, je vais configurer une nouvelle connexion sql et la fermer gracieusement. Je pense que les cas de test sont très bien isolés. Je ne comprends pas pourquoi redémarrer le serveur sql causerait une telle erreur.

actuellement, je vais devoir frapper le serveur SQL moi-même après son redémarrage. Je pense que c'est vraiment une solution laide.

+0

Pouvez-vous afficher votre code de connexion au sqlserver dans chacun des tests? – Kangkan

+0

Donc, pour être clair, vous arrêtez le SQL Server pour un cas de test, le redémarrez, attendez un délai raisonnable pour qu'il démarre (!), Puis exécutez les tests suivants? –

+3

L'acceptation de ZERO PERCENT est un moyen de dissuasion majeur. – Kangkan

Répondre

0

Ceci est normal. Redémarrer SQL Server signifie que toutes les connexions sont supprimées, y compris la connexion de votre application (éventuellement mise en pool). Je pense que vous devez juste gérer cette erreur et réessayer. Ce qui est certes une douleur.

+0

ouais, je suppose qu'il a quelque chose lié à la piscine de connexion sql. mais je pense qu'après avoir redémarré le serveur SQL, le pool de connexion devrait être invalide, et le serveur sql ne devrait pas me renvoyer la connexion groupée. – davidshen84

Questions connexes