2009-06-02 11 views
-4

Je développe une application dans ASP.NET MVC, en utilisant SQL Server Express comme backend et Cassini comme serveur web de développement (celui fourni avec Visual Studio 2008).ASP.NET MVC débogage très lent - problème de connexion SQL Server Express?

La performance de l'application est incroyablement rapide (commutateurs de pages presque instantanés). Cependant, tourner le débogueur est douloureusement lent; il faut environ 30 secondes entre le moment où je tape F5 et le moment où la page d'accueil ASP.NET apparaît.

J'ai remarqué un retard similaire lors du chargement de SQL Server Management Studio Express, et un autre délai lorsque j'ouvre une table dans ma base de données pour la première fois pour l'affichage. Après avoir ouvert ma première table, tout se passe bien. Compte tenu du comportement de SQL Server Management Studio Express, je suppose que le problème réside dans la connexion initiale à SQL Server Express. Est-ce vraiment là où le problème est, et si oui, comment puis-je le réparer?

Répondre

0

J'ai finalement résolu le problème en reconstruisant ma pile TCP/IP, en utilisant Netshell à partir d'une fenêtre d'invite de commandes. Apparemment, je recevais un délai d'attente TCP/IP.

netsh int ip reset c:resetlog.txt 

http://support.microsoft.com/kb/299357

+0

Le lien fournit un outil "Microsoft Fix it" qui, comme il est dit, va résoudre le problème automatiquement mais nécessite un redémarrage. –

0

Je vérifierais la propriété auto_close sur la base de données. Je pense que la valeur par défaut de Express peut être d'activer le mode autoclose. Lorsque ce paramètre est défini sur TRUE, le serveur ferme la base de données et en libère toutes les ressources lorsqu'il n'y a aucun utilisateur dans la base de données. Si vous définissez autoclose sur FALSE, le serveur se connecte à la base de données de manière à ce qu'il soit à l'état Prêt, quels que soient les utilisateurs présents dans la base de données ou non. Pour plus d'informations, voir here.

+0

Il a été mis à false. –

1

S'il est lent que lorsque le débogage, puis il y a plusieurs points d'étranglement à considérer:

  1. Applications commencer plus lentement lors du débogage en raison de la précompilation la JITer doit faire chaque fois que les assemblées sont recréés.
  2. Si vous compilez et déboguez à chaque fois, il se peut que votre compilation soit lente, et pas tellement la performance de votre application. Combien de temps faut-il pour que le navigateur apparaisse une fois que vous avez atteint F5? Si vous avez plusieurs projets dans votre solution, leur construction prendra du temps. Essayez de configurer une configuration de construction qui exclut les projets de classe (assurez-vous de les reconstruire manuellement si nécessaire)
  3. Je n'ai eu aucun problème avec Cassini, mais vous pouvez essayer IIS juste pour les grins.

Juste quelques réflexions, HTH.

+0

Dave, le navigateur apparaît instantanément après avoir appuyé sur F5, et reste dans un état blanc vide pendant les 30 secondes pendant que la première page décide d'apparaître. Je construis généralement avant de frapper F5. Je peux essayer IIS7, mais je devrai d'abord mettre en place une autre machine avec Windows Server 2008. La solution est assez petite et n'inclut aucun autre projet de classe excepté le projet de test. –

Questions connexes