Различие, существующее между приложениями ASP.NET и многофункциональными клиентскими приложениями, приобретает смысл при анализе модели выполнения ASP.NET. В отличие от приложений для Windows, конечный пользователь никогда не запускает приложение ASP.NET напрямую. Наоборот, пользователь запускает браузер, например Internet Explorer, и запрашивает определенный URL-адрес (например, http://www.mysite.com/mypage.aspx) по протоколу HTTP. Этот запрос получает Web-сервер. В процессе отладки приложения в Visual Studio используется только локальный тестовый сервер. В процессе развертывания приложения используется Web-сервер IIS о чем будет рассказано в главе 18.
Web-сервер не имеет понятия об отдельно существующих приложениях — он просто передает запрос рабочему процессу ASP.NET (aspnet_wp.exe в IIS 5.x и w3wp.exe IIS 6.0 - прим. переводчика). Однако, рабочий процесс ASP.NET тщательным образом разделяет выполнение кода на различные домены приложении на основании виртуального каталога Web-страницы и Web-службы, которые находятся в одном и том же виртуальном каталоге (или в одном из его подкаталогов), вьполняются в одном и том же домене приложения. Web-страницы и Web-службы из разных виртуальных каталогов выполняются в разных доменах приложений.
На заметку! Виртуальный каталог — это обычный каталог, который становится доступным через Web-сервер. О создании виртуальных каталогов речь пойдет в главе 18. При использовании тестового сервера в Visual Studio ваш каталог Web-проекта обрабатывается подобно виртуальному каталогу. Единственное исключение состоит в том, что тестовый сервер поддерживает только локальные соединения (запросы, инициированные на текущем компьютере).
Домен приложения представляет собой .NET-эквивалент процесса — по сути, это граница, определяемая CLR, и гарантирующая, что одно приложение не сможет оказывать влияние на другое приложение (или видеть данные, хранящиеся в памяти другого приложения). Следующие характеристики являются прямым следствием модели домена приложения:
предыдущая следующая страница оглавление
203