Au moment où j'ai ajouté un test unitaire à mon application ASP.NET MVC pour tester certains routages de zone, j'ai obtenu un HttpException
sortant de l'initialiseur de type System.Web.Complication.CompilationLock
avec la trace de pile suivante.CompliationLock lance HttpException lors de l'enregistrement de zones pour les tests unitaires ASP.NET MVC
System.Web.HttpException : The type initializer for 'System.Web.Compilation.CompilationLock' threw an exception.
----> System.TypeInitializationException : The type initializer for 'System.Web.Compilation.CompilationLock' threw an exception.
----> System.NullReferenceException : Object reference not set to an instance of an object.
at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()
at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
at System.Web.Compilation.BuildManager.GetReferencedAssemblies()
at System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.GetReferencedAssemblies()
at System.Web.Mvc.TypeCacheUtil.FilterTypesInAssemblies(IBuildManager buildManager, Predicate`1 predicate)
at System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies(String cacheName, Predicate`1 predicate, IBuildManager buildManager)
at System.Web.Mvc.AreaRegistration.RegisterAllAreas(RouteCollection routes, IBuildManager buildManager, Object state)
at System.Web.Mvc.AreaRegistration.RegisterAllAreas(Object state)
at System.Web.Mvc.AreaRegistration.RegisterAllAreas()
at StpWeb.MvcApplication.RegisterRoutes(RouteCollection routes) in Global.asax.cs: line 16
at StpWeb.Tests.RoutesTest.TestFixtureSetUp() in RoutesTest.cs: line 11
--TypeInitializationException
at System.Web.Compilation.CompilationLock.GetLock(ref Boolean gotLock)
at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
--NullReferenceException
at System.Web.Compilation.CompilationLock..cctor()
je aurais pu sauver quelques heures si je trouvais [cette personne] (http://aspnet.codeplex.com/WorkItem/View.aspx?WorkItemId=4915) avec le même problème sur le site MVC CodePlex . Les commentaires sur ce problème offrent la même solution. – patridge
Cela semble être configuré par défaut dans Global.asax.cs dans VS2010 lorsque vous créez un projet MVC2 vide. – patridge