2013-03-18 226 views
0

我想调试我在IIS 7.5上运行的asp.net web应用程序时遇到的问题。我期望在通过将物理路径更改为新的代码副本来部署应用程序时发现,请求未完成。ASP.NET应用程序生命周期 - 非页面生命周期

我的印象是,当新的请求针对新实例执行时,当前正在执行的请求将在应用程序的旧实例上完成。如果这是真的,我预计旧的实例运行,直到达到httpRuntime.shutdownTimeout。

长话短说,我试图在本地重现这一点,但没有发生。无论我提出了多长时间的请求,IIS似乎都会等待超出shutdownTimeout中的设置。

这是我感兴趣的生命周期的一部分。在应用程序的物理路径更改和IIS将任何当前正在执行的请求上的插件拉上之间会发生什么?

+0

让Visual Studio为您部署代码。我不知道为什么你认为POSTS/GETS(请求)会跨实例共享。我会在应用程序中寻找任何硬编码的路径,如果Visual Studio在路径下放置一个扭曲的路径,这是值得研究的。如果我理解正确,我不认为app_start,app_end与您的问题有任何关系。事实上,你甚至不得不使用这些。 – RandomUs1r 2013-03-18 22:44:45

+0

可能的重复[任何人都可以解释如何ASP> NET应用程序li​​fecyle工作从第一个请求开始到IIS到页面响应](http://stackoverflow.com/questions/11581619/anyone-can-explain-how-aspnet-应用程序生命周期 - 作品 - 开始 - 从 - - 第一-R) – 2013-03-18 23:23:00

回答

0

MSDN有详细的ASP.NET应用程序生命周期解释。

Application_Start和Application_End方法是不代表HttpApplication事件的特殊方法。 ASP.NET在应用程序域的生命周期中调用它们一次,而不是为每个HttpApplication实例调用它们。

的Application_Start

请求所述第一资源(例如,页)在ASP.NET应用程序时调用。 Application_Start方法在应用程序的生命周期中只调用一次。您可以使用此方法执行启动任务,例如将数据加载到缓存中并初始化静态值。 您应该在应用程序启动过程中仅设置静态数据。不要设置任何实例数据,因为它只能用于创建的HttpApplication类的第一个实例。