Для создания доменов приложений ASP.NET использует технологию отложенной инициализации. Это означает, что домен приложения для Web-приложения создается при первом получении запроса на страницу или Web-службу в этом приложении.
Домен приложения может быть закрыт в силу разных причин, включая ситуацию, когда Web-cepвep сам прекращает свою работу. Но, как правило, приложения перезапускают сами себя в новых доменах приложений в ответ на ошибки либо изменения конфигурации. Например, в зависимости от того, какие значения имеют параметры настройки в файле machine.config с областью действия всего компьютера, приложение ASP.NET может периодически использоваться повторно по достижении некоторых пороговых значений. Эта модель предназначена для того, чтобы сохранять работоспособность приложения и обнаруживать характеристики, которые могли бы указывать на появление проблемы. В зависимости от параметров настройки в вашем файле machine.config, домены приложений могут использоваться повторно на основании того, сколько времени выполняется домен приложения, сколько запросов находится в очереди или какой объем памяти используется (об этом речь пойдет в главе 18).
ASP.NET автоматически повторно использует домены приложений во время изменения приложения. Одним из примеров является изменение файла web.config. Еще одним примером является замена файла существующей Web-страницы или DLL-файла сборки. В каждом из этих случаев ASP.NET начинает новый домен приложения для обработки всех будущих запросов, и сохраняет существующий домен приложения активным столько времени, сколько необходимо для завершения обработки любых необработанных запросов (включая запросы, находящиеся в очереди).
Совет. Вы можете закрывать домен приложения программно с помощью статического метода HttpRuntime.UnloadAppDomain(). (Приложение перезапустит само себя автоматически в следующий раз, когда получит запрос.) Эта технология используется редко, но она будет полезной, если у вас содержится большее количество Web-приложений на одном сервере, и некоторые из них используются относительно редко. В этом случае издержки памяти, связанные с поддержанием активности домена приложения, могут перевесить увеличенную скорость обслуживания последующих запросов.
Одной из наиболее примечательных особенностей модели выполнения ASP.NET является то, что вы можете обновлять ваше Web-приложение, не перезапуская Web-сервер и не беспокоясь о том, что это может причинить вред существующим клиентам. Это означает, что вы можете добавлять, заменять или удалять файлы в виртуальном каталоге в любое время. ASP.NET затем выполнит такой же переход в новый домен приложения, как и при модифицировании конфигурационного файла web.config.
Возможность обновлять любую часть приложения в любое время, не прерывая выполнение существующих запросов, является мощной характеристикой. Однако очень важно понять архитектуру, благодаря которой это становится возможным.
предыдущая следующая страница оглавление
205