2010-10-19 91 views
10

在正常的aspx页面上,我发生了诸如Page_Init,Page_Unload等事件,这些事件发生在in a well-defined order什么是ASP.NET Webservice请求生命周期?

我有一个asmx页面提供[WebMethod()] s。有类似的事件吗?特别是,有些事件允许我初始化一些数据(如Page_Load)并进行一些清理(如Page_Unload)将非常有用。 (据我所知,asmx代码隐藏类的构造函数似乎在每个WebMethod请求上被调用,即为每个WebMethod请求创建一个新实例,但这仅仅是一个观察,并不是东西我发现某处记录...)

+0

我会指出这是相当依赖于实现的信息,特别是考虑到ASMX几乎已被WCF取代,WCF具有完全不同的生命周期。 – 2010-10-20 21:02:43

回答

9

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

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

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

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

所以,这实际上取决于你要在这里做什么。 Ctor应该提供一个良好的接入前请求执行。如果你正在寻找更早的东西,那么你可能需要挂钩一个Global.asax事件。

1

asmx对象没有页面导出,而从System.Web.Services.WebService,所以他们不会有你正在寻找的事件。