Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
16-30 (1).doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

17.Приложения asp.Net.

Различие, существующее между приложениями ASP.NET и многофункциональными клиентскими приложениями, обретает большой смысл при анализе модели выполнения ASP.NET. Веб-сервер не имеет понятия об отдельно существующих приложениях — он просто передает запрос рабочему процессу ASP.NET. Однако рабочий процесс ASP.NET тщательно разделяет выполнение кода в различные домены приложений на основе виртуального каталога. Веб-страницы, которые находятся в одном и том же виртуальном каталоге, выполняются в одном и том же домене приложения. Веб-страницы из разных виртуальных каталогов выполняются в разных доменах приложений.

Домен приложения — это устанавливаемая средой CLR граница, которая гарантирует, что одно приложение не сможет влиять на другое приложение (или видеть хранящиеся в его памяти данные). Следующие характеристики являются прямым следствием модели домена приложения:

Все веб-страницы в одном веб-приложении совместно используют одни и те же ресурсы, находящиеся в памяти — глобальные данные приложения, данные сеансов отдельных пользователей, а также кэшированные данные. Эта информация не доступна напрямую, другим приложениям ASP.NET или ASP.

Все веб-страницы в одном веб-приложении совместно используют одни и те же основные конфигурационные настройки. Однако можно настраивать некоторые параметры конфигурации в отдельных подкаталогах одного и того же виртуального каталога. Например, можно установить только один механизм аутентификации для веб-приложения, независимо от того, какое количество подкаталогов в нем имеется.

С помощью кода в файле global.asрx, расположенном в виртуальном каталоге приложения, можно присоединять обработчики событий, которые будут реагировать на эти глобальные события приложений.

Другими словами, виртуальный каталог является базовой групповой структурой, определяющей границы приложения ASP.NET. Допустимое приложение ASP.NET вполне может содержать единственную веб-форму (файл .aspx).

Для создания доменов приложений ASP.NET использует технологию отложенной, или "ленивой" инициализации. Это означает, что домен для веб-приложения создается при первом получении запроса на страницу в этом приложении.

В случае изменения приложения среда ASP.NET автоматически обновляет домены приложений. Одним из примеров может быть модификация файла web.config. Другой пример — замена существующего файла веб-страницы или DLL-файла сборки. В обоих этих случаях ASP.NET запускает новый домен приложения для обработки всех будущих запросов и сохраняет существующий домен приложения в рабочем состоянии до тех пор, пока не завершится обработка всех незаконченных запросов

Обновление приложений

Одной из наиболее примечательных особенностей модели выполнения ASP.NET является то, что она позволяет обновлять веб-приложение, не перезапуская веб-сервер и не беспокоясь о том, что это может причинить вред существующим клиентам. Это означает, что файлы в виртуальном каталоге могут заменяться, добавляться и удаляться в любое время. ASP.NET затем выполняет точно такой же переход на новый домен приложения, как и в случае изменения конфигурационного файла web.config.

Возможность обновлять любую часть приложения в любое время, не прерывая выполнение существующих запросов, является мощным средством. Однако важно понимать, что именно в архитектуре ASP.NET делает это доступным. Многие разработчики ошибочно предполагают, что плавно переходить на новый домен приложения ASP.NET позволяет среда CLR. Но на самом деле CLR-среда всегда блокирует файлы сборок, когда выполняет их. Чтобы обойти это ограничение, ASP.NET не использует сами файлы ASP.NET, находящиеся в виртуальном каталоге. Вместо этого во время компиляции она применяет прием, который называется теневым копированием (shadow copy).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]