什么是ASP.NET Webservice请求生命周期?

时间:2010-10-19 11:26:05

标签: c# .net asp.net web-services asmx

在常规aspx页面上,我有Page_InitPage_Unload等事件,这些事件发生在in a well-defined order

我有一个提供asmx的{​​{1}}页面。是否存在类似的事件?特别是,一些允许我初始化某些数据(如[WebMethod()])并进行一些清理(如Page_Load)的事件将非常有用。

(据我所知,Page_Unload代码隐藏类的构造函数似乎在每个WebMethod请求上都被调用,即为每个WebMethod请求创建一个新实例,但这只是一个观察,而不是我发现某处记录的东西......)

2 个答案:

答案 0 :(得分:9)

是 - Otavio是正确的,ASMX Web服务没有Page事件,因为它们不是从Page派生的。

但是,该请求遵循常规ASP.NET processing pipeline

在执行相关IHttpHandler的过程中有一点。这可以是页面,通用HTTP处理程序或Web服务。

这是Web服务请求执行的地方。

所以,这真的取决于你在这里尝试做什么。 ctor应该为预请求执行提供良好的挂钩。如果您正在寻找更早的东西,那么您可能需要挂钩Global.asax事件。

答案 1 :(得分:1)

asmx个对象不是来自Page,而是来自System.Web.Services.WebService,因此他们不会拥有您正在寻找的事件。