Что такое жизненный цикл запроса ASP.NET Webservice?

На регулярной странице aspx у меня есть такие события, как Page_Init, Page_Unload и т.д., которые встречаются в четко определенном порядке.

У меня есть страница asmx, предоставляющая [WebMethod()] s. Существуют ли подобные события? В частности, чрезвычайно важны некоторые события, которые позволяют мне инициализировать некоторые данные (например, Page_Load) и выполнять некоторую очистку (например, Page_Unload).

(Насколько я могу судить, конструктор класса asmx code-behind, по-видимому, вызывается в каждом запросе WebMethod, т.е. создается новый экземпляр для каждого запроса WebMethod, но это всего лишь наблюдение и не то, что я где-то нашел где-то...)

Ответ 1

Да - Отавио прав, нет событий страницы для веб-служб ASMX, так как они не выводятся из страницы.

Однако запрос следует за регулярным конвейером ASP.NET.

В процессе, где выполняется соответствующий IHttpHandler, есть точка. Это может быть страница, общий HTTP-обработчик или веб-служба.

Здесь выполняется выполнение запроса веб-службы.

Итак, это действительно зависит от того, что вы пытаетесь сделать здесь. Ctor должен обеспечить хороший крючок для предварительного запроса исполнения. Если вы ищете что-то еще раньше, вам, вероятно, потребуется подключиться к событию Global.asax.

Ответ 2

asmx объекты не выводятся из страницы, а не из System.Web.Services.WebService, поэтому у них не будет событий, которые вы ищете.