2009-02-09 10 views
0

Lors de la mise à niveau de MVC beta vers MVC RC1, le serveur Web de développement de Visual Studio s'est soudainement écrasé à un moment donné de l'application. Après quelques recherches, je plissant le bug à cette ligne simple:Lors de la mise à niveau vers MVC bêta vers RC1, l'application tombe soudainement à l'endroit où elle ne devrait pas planter

if (!helper.ViewData.ContainsKey("SomeString")) 

SomeString est à ce moment présent dans le vidéotex si l'instruction if doit return false

lorsque cette ligne est exécuté les accidents de serveur Web, sans exeption dans le programme. Nous voyons un crash qui semble provenir de la méthode ContainsKey. Est-ce que quelqu'un a connu le même problème? devrions-nous retourner notre insallation à MVC beta?

Répondre

0

J'ai trouvé le problème. Le code qui exécute la méthode ContainsKey était dans une bibliothèque externe. Comme nous avons mis à jour nos machines de développement à RC1, nous avons oublié de mettre à jour notre serveur de construction à RC1.So les bibliothèques que nous avons référencées ont été construites avec une référence à la version bêta de mvc. Je trouve toujours étrange que ces erreurs puissent se produire mais c'était le problème. Lorsque nous avons mis à jour notre serveur de génération, l'erreur était partie.

0

Je ne connais pas la réponse, mais je peux vous dire comment la trouver. Mon expérience est que lorsque le serveur Web de développement se bloque, c'est généralement à cause du débordement de pile dans votre code (ou, évidemment, du code dans le framework que vous appelez). Vous pouvez bien sûr obtenir le code source MVC auprès de CodePlex. Vous devriez télécharger ceci, et l'ajouter à votre solution. Tracez dans ContainsKey. Utilisez l'option Visual Studio pour tracer dans le code source de l'infrastructure .NET, le cas échéant. À un moment donné, vous devriez comprendre pourquoi le code s'inverse.

0

Quelle exception voyez-vous dans le gestionnaire d'événements de Windows? Il y a quelques informations qui peuvent être utiles, je pense que le nom de l'application est Casini