Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Статьи - Алексей Немиро -

ASP .NET - Общие вопросы

Все статьи / Общие вопросы

Файл Global.asax

Автор: Алексей Немиро | добавлено: 03.03.2010, 17:08 | просмотров: 8977 (0+) | комментариев: 0 | рейтинг: *x5

Файл Global.asax является необязательным файлом приложений ASP .NET и содержит дополнительный код, отвечающий за обработку событий, происходящих на уровне приложения. Этот файл должен находиться в корневом каталоге Web-приложения. В ASP .NET 1.1 сей файл автоматически создавался Visual Studio при создании нового Web-проекта, в ASP .NET 2.0 Visual Studio Global.asax автоматически не создает, но его можно добавить в проект вручную. Все изменения, внесенные в файл Global.asax отслеживаются средой ASP .NET, и приложение перезагружается.

Во время выполнения программы Global.asax компилируется в динамический класс, который производится из класса HttApplication и это позволяет управлять всем приложением.

В файле Global.asax можно, также как и в файлах страниц *.aspx, использовать директивы @ Imports, @ Application и @ Assembly.

За счет того, что файл Global.asax происходит от класса HttpApplication, то он наследует его методы и события. Обработчики событий должны соответствовать  стандартной схеме присвоения имен: Application_ИмяСобытия(событие, аргументы).

Собственно, если вы используете среду разработки Visual Studio 2005, то добавив Global.asax в проект (Website => Add New Item), VS автоматиские создает станадртные обработчики событий. Ниже приведен пример Global.asax созданного VS 2005:

 

<%@ Application Language="VB" %>

 

<script runat="server">

 

  Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)

    ' Code that runs on application startup

  End Sub

   

  Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)

    ' Code that runs on application shutdown

  End Sub

       

  Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)

    ' Code that runs when an unhandled error occurs

  End Sub

 

  Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)

    ' Code that runs when a new session is started

  End Sub

 

  Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)

    ' Code that runs when a session ends.

    ' Note: The Session_End event is raised only when the sessionstate mode

    ' is set to InProc in the Web.config file.

    If session mode is set to StateServer

    ' or SQLServer, the event is not raised.

  End Sub

      

</script>

 

Вот собственно и все, и можно смело завершать эту статью, поскольку VS 2005 и так создает вполне понятный файл Global.asax и осталось только добавить код для обработки событий приложения. Но не все так просто. Я несколько часов потратил, на то чтобы заставить Global.asax обработать событие Application_Error, иногда даже создавалось впечатление, что этот файл просто убрали из ASP .NET 2.0, поскольку реакции не было абсолютно ни какой. Я перерыл большое количество справочной информации по этому поводу, но везде было одно и тоже. Не знаю почему, но созданные автоматически VS 2005 события в Glabal.asax не обрабатываются. Хотя нет, они обрабатываются вполне не плохо самой средой VS 2005 в режиме Debug, но на IIS 5.0/6.0 реакции на них нет абсолютно ни какой.

Но не стоит отчаиваться, все оказалось, как всегда просто и в недрах MSDN мне удалось найти код обработки событий, который действительно работает:

 

<%@ Application  Language="VB" ClassName="global_asax" %>

 

<script RunAt="server">

 

  Sub Application_OnStart()

    Response.Write("Application_OnStart()")

  End Sub

 

  Sub Application_BeginRequest()

    Response.Write("Application_BeginRequest()")

  End Sub

 

  Sub Application_OnEnd()

    Response.Write("Application_OnEnd()")

  End Sub

 

  Sub Application_Error()

    Response.Write("Application_Error()")

  End Sub

 

</script>

 

Вот собственно на этом можно и закончить этот небольшой обзор. Надеюсь, эта статейка помогла сэкономить вам время и нервы. Будут вопросы, пишите.

Удачи!

+ Добавить в избранное
    ? Помощь
Об авторе

Алексей Немиро

Интернет-деятель. Автор многочисленных статей и переводов статей по программированию и информационным технологиям. Работы Алексея можно найти в популярных печатных изданиях компьютерной тематики. Автор проекта Kbyte.Ru.
Сейчас Алексей занимается профессиональным Web-программированием на базе технологий .NET Framework. Иногда пишет различные программки и компоненты для Windows и Android. В свободное время занимается Web-дизайном, увлекается фото- и видеосъемкой.

См. также:
Профиль автора
Алексей Немиро
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Люди на Kbyte.Ru
Реклама
Счетчики