2012-07-20 46 views
0

基本上我下面的代码看起来S形:装配:WebActivator.PreApplicationStartMethod不工作

[assembly: WebActivator.PreApplicationStartMethod(typeof(OpusOneCorp.Presentation.Client.Mvc.EndUser.App_Start.StructuremapMvc), "Start")] 

    namespace OpusOneCorp.Presentation.Client.Mvc.EndUser.App_Start { 
     public static class StructuremapMvc { 
      public static void Start() { 
       var container = InversionOfControl.InitializeForUser(); 
       DependencyResolver.SetResolver(new StructureMapDependencyResolver(container)); 
       ObjectFactory.GetInstance<IThreadRunner>().Check(); 
      } 
     } 

} 

嗯,我不是这个代码的作者,但它的实现运行每次项目开始,并使用Web激活属性来做到这一点。这真的是我的机器上的一个奇怪的方式。如果我在其上放置了一个断点,那么它根本不会触及断点,这意味着在应用程序启动之前它不会触及此代码。

其次,当我做iisreset时,它第一次击中它,但没有更多时间击中它......同时,它每次都在我的同事的计算机上击中它......它是非常不一致的行为,它刚刚开始行动。我已经有了几个月的这段代码,它从来没有坏过,但它突然开始这样做。当然这意味着别的东西已经改变了它,但是如果它已经打破了它,那么它不应该打破断点,而不是每次做iisreset时都决定打它。

回答

4

你在同事的计算机上使用IIS还是在web服务器中构建的visual studio?

vs web服务器将在您每次运行网站时都会重新启动应用程序,而不是在应用程序启动时点击断点,但IIS只会在第一次调用应用程序时启动应用程序。这就是为什么直到你做一个iisreset才会再次达到这个转折点。