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

10
在常规的aspx页面上,我有像Page_InitPage_Unload等事件,这些事件按照定义良好的顺序发生。
我有一个提供[WebMethod()]asmx页面。是否存在类似的事件?特别是一些允许我初始化某些数据(如Page_Load)和进行一些清理工作(如Page_Unload)的事件将非常有用。
(据我所知,asmx代码后台类的构造函数似乎在每个WebMethod请求上都会被调用,即为每个WebMethod请求创建一个新实例,但这只是一种观察,并不是我在某个地方找到文档记录的...)

我想指出这是相当依赖于实现的信息,特别是考虑到 ASMX 已经被 WCF 取代,后者具有完全不同的生命周期。 - John Saunders
2个回答

9

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

然而,请求遵循常规的ASP.NET处理管道

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

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

所以,这真的取决于你在这里想做什么。构造函数应该提供一个良好的钩子来进行预请求执行。如果你想要更早的东西,那么你可能需要挂钩Global.asax事件。


1

asmx 对象不是从 Page 派生而来的,而是从 System.Web.Services.WebService 派生而来,因此它们不会具有您要查找的事件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接