assembly:WebActivator.PreApplicationStartMethod不工作

时间:2012-07-20 00:38:20

标签: c# .net iis attributes webactivator

基本上我的代码看起来很像:

    [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 Activator属性来执行此操作。在我的机器上真的是一种奇怪的表现。如果我在它上面设置一个断点,那么它根本不会达到断点,这意味着它在应用程序启动之前没有达到此代码。

其次,当我做iisreset时,它会在第一时间点击它,但不会再进一步​​点击它.....同时,它每次都会在我同事的电脑上点击它......它是非常不一致的行为,它只是开始行动这是。我有几个月的代码,它从来没有破坏,但它突然开始这样做。当然这意味着其他东西已经改变它但是如果它已经破坏它那么它应该永远不会击中断点而不是每次我做iisreset时决定击中它。

1 个答案:

答案 0 :(得分:4)

您是在同事的计算机上使用IIS还是在Web服务器中内置的可视工作室?

vs web服务器将在每次运行网站时重新启动应用程序,而不是在应用程序启动时点击断点,但IIS将仅在第一次调用应用程序时启动应用程序。这就是为什么在你做iisreset之前它没有再次达到断点的原因。