В этом упражнении будет рассмотрено использование сети доставки содержимого Windows Azure (CDN) для доставки статического содержимого в веб-приложении. Для этой цели используется образец приложения, реализованного с помощью MVC, который использует такие статические ресурсы, как каскадные таблицы стилей (CSS) и файлы скриптов. В своей исходной реализации эти ресурсы хранятся в структуре папок приложения, а страницы приложения на них ссылаются. В этом сценарии при просмотре страницы браузер получает данные статические ресурсы из веб-роли, на которой размещено приложение. Для выгрузки доставленного статического содержимого веб-приложение может воспользоваться хранилищем Windows Azure. Чтобы исследовать этот сценарий, загрузите статическое содержимое примера приложения в хранилище больших двоичных объектов Windows Azure и измените ссылки в нем таким образом, чтобы они указывали на загруженные большие двоичные объекты, таким образом освободив сервер размещения от необходимости управления этими ресурсами. Помимо того, что доставка содержимого в хранилище больших двоичных объектов полезна с точки зрения занимаемых ресурсов сервера, где размещено приложение, это также означает, что по всему миру клиенты будут получать содержимое из одного и того же расположения. Для клиентов, удаленных от центра обработки данных, где размещена учетная запись служб хранилища Windows Azure, задержка может увеличиться. Включение CDN для учетной записи хранилища позволит реплицировать и кэшировать ресурсы во многих точках по всему миру, что позволит разместить содержимое ближе к пользователям. Для выполнения этого упражнения включите CDN для своей учетной записи хранилища и настройте приложение на его использование.

Задача 1. Загрузка ресурсов с сервера размещения

НЕ нашли? Не то? Что вы ищете?
В этой задаче будет запущено приложение, которое ссылается на статические ресурсы внутри своей структуры папок. Откройте Visual Studio с правами администратора, выбрав Пуск | Все программы | Microsoft Visual Studio 2010, щелкнув правой кнопкой мыши пункт Microsoft Visual Studio 2010 и выбрав команду Запуск от имени администратора. Если откроется диалоговое окно Контроль учетных записей, подтвердите продолжение действия. В меню Файл выберите пункт Открыть, затем щелкните Проект/Решение. В диалоговом окне Открытие проекта в папке Source этой практической работы выберите Ex1-UsingAzureCDN\Begin, укажите Begin. sln и нажмите кнопку Открыть. Откройте страницу Site. Master в папке Views\Shared проекта CDNSample. Проверьте разметку, в частности содержимое тега head, и обратите внимание на то, каким образом вспомогательный метод генерирует URL-адрес связанных ресурсов. Рис. 1

Связывание статического содержимого в приложении

Теперь откройте файл UrlHelperExtension. cs в папке Helpers. Класс UrlHelperExtension содержит методы расширения для класса UrlHelper, который обычно используется для создания URL-адресов в приложениях MVC. Изучите метод StaticContent этого класса и обратите внимание на то, как он возвращает абсолютный путь, который сопоставляет ресурсы для папки Content приложения. Рис. 2 Использование методов расширения для связывания статических ресурсов Примечание. Использование вспомогательного метода для построения URL-адреса статических ресурсов позволяет легко осуществлять перемещение этих ресурсов. Откройте представление Index. aspx в папке Views\Home проекта. Обратите внимание, что для формирования выходных данных используется частичное представление ImageUserControl. Рис. 3 Разметка для представления корневой папки Примечание. Частичное представление ImageUserControl отображает изображение вместе с его URL-адресом и сведениями об источнике его загрузки — с сервера размещения, из хранилища больших двоичных объектов или из сети доставки содержимого. Этот элемент управления расположен в папке Views\Shared приложения и использует метод расширения в классе UrlHelperExtension с именем GetSource, который анализирует URL-адрес изображения, пытаясь определить, откуда оно было загружено. Внимание! Прежде чем запустить решение на выполнение, убедитесь, что выбран запускаемый проект, а начальная страница веб-проекта пуста.
Чтобы выбрать запускаемый проект, в обозревателе решений щелкните правой кнопкой мыши проект CDNService и выберите Назначить запускаемым проектом. Чтобы задать начальную страницу, в обозревателе решений щелкните правой кнопкой мыши проект CDNSample и выберите пункт Свойства. В окне Свойства перейдите на вкладку Интернет и в разделе Действие при запуске выберите параметр Указанная страница. Оставьте значение этого поля пустым.
Чтобы построить и запустить приложение в эмуляторе вычислений, нажмите клавишу F5. Дождитесь открытия домашней страницы в браузере, которая должна выглядеть так, как показано на следующем рисунке. Обратите внимание, что источником изображения является сервер, где размещено приложение, а его URL-адрес относится к папке Content приложения.   Рис. 4 На домашней странице приложения отображается содержимое, загруженное с сервера размещения При просмотре страницы в Internet Explorer 8 или более поздней версии нажмите клавишу F12, чтобы открыть средства разработчика. Примечание. Домашняя страница приложения содержит ссылки на несколько статических ресурсов, включая таблицу стилей (CSS), файл скрипта и изображение. Для выполнения следующих шагов потребуется применение средств разработки Internet Explorer, доступных в Internet Explorer 8 или более поздней версии, чтобы определить местоположение, используемое браузером для загрузки всех связанных ресурсов. При использовании другого браузера следует пользоваться другими средствами для отображения источника этих документов, например при отображении исходного кода страницы или исследования происхождения каждого связанного элемента. Кроме того, можно просматривать все запросы, выполненные браузером в таком средстве отладки HTTP, как Fiddler. В меню «Средства разработчика» выберите пункт Изображения и щелкните Просмотр отчета об изображении. Обратите внимание, что атрибут SRC указывает на то, что изображение загружено из папки Content/images приложения. Рис. 5 В отчете об изображении показано изображение, загруженное из папки «Content» приложения Чтобы проверить источник файла скрипта, в пользовательском интерфейсе средств разработки перейдите на вкладку Сценарий и щелкните раскрывающийся список сценариев на этой странице. Обратите внимание, что сценарии также загружены из папки Scripts, вложенной в папку Content. Рис. 6 В представлении скрипта отображен скрипт, загруженный из папки «Content» приложения Аналогичным образом, чтобы определить источник CSS-файлов, перейдите на вкладку CSS и щелкните раскрывающийся список таблиц стилей CSS, загружаемых этой страницей. Снова обратите внимание, что источником таблицы стилей является папка Content/styles приложения. Рис. 7 В представлении CSS отображаются таблицы стилей, загруженные из папки «Content» приложения (Необязательно) Запустите средство отладки HTTP Fiddler. Затем в адресной строке окна браузера замените часть узла текущего адреса (127.0.0.1) на имя узла ipv4.fiddler (например, http://IPv4.Fiddler:81) для перенаправления локального трафика через «Fiddler». Теперь просмотрите запросы, выполненные браузером, на панели Fiddler Веб-сеансы, в частности столбец Узел, где отображены запросы к серверу, на котором размещено приложение. Рис. 8 В системе отслеживания «Fiddler» показаны запросы к серверу размещения Чтобы остановить отладку, закройте окно браузера и завершите работу приложения.

Задача 2. Загрузка статического содержимого в хранилище больших двоичных объектов

В этой задаче статическое содержимое приложения загружается в контейнер службы больших двоичных объектов Windows Azure с помощью скрипта PowerShell. Скрипт рекурсивно копирует все файлы и каталоги в папке Content приложения в определенный контейнер хранилища больших двоичных объектов. Чтобы настроить учетную запись служб хранилища Windows Azure, в которое инструмент загружает файлы, откройте файл configuration. xml в папке Assets этой практической работы. В этом файле введите идентификатор подписки на Windows Azure, имя и первичный ключ доступа к учетной записи хранилища, заменив соответствующие заполнители в этом файле. Рис. 9 Настройка скрипта для загрузки содержимого в хранилище больших двоичных объектов Сохраните файл configuration. xml. В проводнике Windows перейдите в папку Assets этой практической работы, щелкните правой кнопкой мыши скрипт UploadBlobs. cmd и выберите команду Запуск от имени администратора. Дождитесь завершения выполнения скрипта. Рис. 10 Загрузка статического содержимого в хранилище больших двоичных объектов Windows Azure Примечание. Скрипт использует библиотеку StorageClient для загрузки ресурсов, хранящихся в папке Content приложения, в контейнер хранилища больших двоичных объектов с тем же именем content, а затем обновляет заголовок кэша каждого загруженного большого двоичного объекта, задавая для него время жизни (TTL) сроком в 1 день. Как правило, для редко изменяющихся статических ресурсов можно настроить относительно большие значения времени жизни, чтобы пограничные серверы сети доставки содержимого могли кэшировать это содержимое и предотвратить частое обращение к большим двоичным объектам из этого источника. Но обратите внимание, что после кэширования содержимого в большие двоичные объекты источника нельзя внести изменения из CDN до тех пор, пока не истечет время жизни. Если ресурс с большим временем жизни нуждается в обновлении, то можно применить доступные приложению методы обновления содержимого. В упражнении 2 этой практической работы приведен пример такого метода.

Задача 3. Доставка содержимого из хранилища больших двоичных объектов

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8