Опубликован: 14.11.2006 | Уровень: для всех | Доступ: платный
Лекция 15:

Конфигурирование проекта. Глобальные объекты

< Лекция 14 || Лекция 15: 12345 || Лекция 16 >

Файл Global.asax, объекты приложения и сеанса

Еще одним глобальным понятием является обработка событий уровня приложения. Это события вроде: "на одной из страниц приложения началась обработка запроса" или "на какой-то странице произошла ошибка". Такие события обрабатываются в коде файла global.asax.

Добавьте в проект новый файл типа Global Application Class. Это можно сделать через меню Website, или щелкнув правой кнопкой мыши на названии проекта в Visual Studio, или через меню File —> New в WebMatrix.

Файл Global.asax — это текстовый файл, который хранится в корневой папке приложения ASP .NET. В проекте может быть только один Global.asax. Он содержит объекты, события, переменные уровня приложения. При создании файла в нем находятся функции, которые должны выполняться при наступлении любого из пяти событий, описанных в таблице.

События для файла Global.asax

Событие Условия наступления
Application_Start Первая страница приложения открывается любым пользователем
Application_End Работа приложения завершается
Session_Start Посетитель активизирует приложение
Session_End Пользователь покидает приложение или не запрашивает страницу в течение некоторого периода времени
Application_Error При выполнении приложения возникает необработанная ошибка

Данные события предназначены для выполнения кода или создания переменных, которые существуют до тех пор, пока существует программа или пока посетитель пребывает на узле. За счет этого можно сохранять регистрационную информацию, неизменные данные для web-узла или постоянные соединения с источниками данных:

<%@ Application Language="C#" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup

    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started

    }

    void Session_End(object sender, EventArgs e) 
    {
        // 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.

    }

</script>

В приложении Starter Kit, например в Application_Start, создаются роли администратора и друга.

< Лекция 14 || Лекция 15: 12345 || Лекция 16 >
Алексей Савельев
Алексей Савельев

https://technet.microsoft.com/en-us/library/ms143221(v=sql.105).aspx

Денис Прокофьев
Денис Прокофьев

Везде написано, что это самый независимый и простой в использовании навигационный элемент управления, что он работает сразу с web.sitemap и не требует определения SiteMapDataSource.

Моя карта сайта состоит из двух страниц, вложенных друг в друга. asp:Menu, asp:TreeView отбображаются как ожидалось, а вот asp:SiteMapPath - нет. Он не виден нигде. Однако на его месте формируется разметка: <span id="SiteMapPath1"><a href="#SiteMapPath1_SkipLink" style="position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;">Проход по ссылкам навигации</a><a id="SiteMapPath1_SkipLink"></a></span> - т.е. элемент отрабатывает.

В словах xHTML это выглядит так: <asp:SiteMapPath ID="SiteMapPath1" runat="server" />. Причем не важно - внутри тега form или снаружи - всегда одинаково.

Т.к. другие нав. ЭУ работают через простой источник данных без ошибок, делаю вывод - карта составлена правильно. ИД: <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />

Карта: <?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="~/L11_1_simplePage.aspx" title="Страница 1"  description="Простая страница 1." >
    <siteMapNode url="~/L11_1SimplePage2.aspx" title="Страница 2"  description="Простая страница 2" />
  </siteMapNode>
</siteMap>

Почему так происходит? Вроде делаю все по примерам. VS Community 2015. NetFramework в проекте: v4.0.30319

Зарина Каримова
Зарина Каримова
Казахстан, Алматы, Гимназия им. Ахмета Байтурсынова №139, 2008
Akiyev Begench
Akiyev Begench
Беларусь, Полоцк, полоцкий государственный университет