2009-07-31 2 views
4

В ASP.NET есть событие Application_EndRequest в global.asax. В классическом ASP однако нет такого эквивалентного события в global.asaОбработка события запроса окончания в классе ASP

Есть ли какой-либо другой встроенный способ обработки события запроса окончания или каким-либо образом каким-либо образом подключиться к IIS для выполнения того же самого?

+0

Просьба указать версию IIS? – AnthonyWJones

ответ

5

Мы используем особенно скрученную технику для выполнения кода после завершения запроса. Рассмотрим следующий фрагмент кода:

Class EndRequestHandler 
    Sub Class_Terminate() 
     '' Handler code goes here 
    End Sub 
End Class 

Set EndRequestHandlerInstance = New EndRequestHandler 

Когда запрос завершается, ASP выгружает все глобальные переменные, в том числе EndRequestHandlerInstance, который вызывает это Class_Terminate метод. Если вы поместите это в файл include, который используется каждой страницей на сайте, он должен служить вашим глобальным обработчиком запросов на конец.

+0

Единственный сценарий, в котором этот метод может быть полезен, - это то, где вы хотите ввести обработку «End Request» в существующий набор ASP-страниц, которые вносят общий вклад в ASP. Этот код может быть помещен в include. Лично мне было бы неудобно делать много в Class_Terminate, который работает во время списания скриптов. – AnthonyWJones

+0

Зачем вам неудобно? Этот метод звучит совершенно иначе. – tgmdbm

1

В IIS6 и старше (или в пуле приложений приложений IIS7 classic) вам действительно понадобится помощь ISAPI-фильтра для достижения такой же цели, как и глобальная операция End Request.

В интегрированном конвейере IIS7 вы можете использовать код .NET End Request, даже если выполняемая страница является классическим ASP.

0

Не новичок, но что вы пытаетесь сделать? Могут быть разные решения для того, что вы хотите (например, отрисовка отладочных лакомств на нижнем колонтитуле каждой страницы) или вообще никаких решений (например, мое желание, чтобы я мог получить содержимое буфера ответа и запутаться с ним до его фермерства к проводу)

+0

Я пытаюсь исправить утечку памяти. Существует круговая ссылка, которая нуждается в очистке до того, как объекты будут завершены. Кроме того, событие завершения запроса является хорошим местом для размещения другого такого очищающего кода. – tgmdbm

Смежные вопросы