Размещать страницы ASPNET в хранилище BLOB-объектов Windows Azure?

Я поддерживаю один раздел веб-сайта, в котором много тысяч довольно статичных страниц. Это страницы ASPX, но у них нет кода программной части. У них ДЕЙСТВИТЕЛЬНО есть ссылки на главную страницу и есть теги <asp:Content>, поэтому они действительно нуждаются в обработке на стороне сервера.

Он размещен в Azure, но создание и обновление сайта занимает вечность из-за количества страниц. Кажется, что должна быть возможность загрузить все эти страницы в хранилище BLOB-объектов и ссылаться на них оттуда. Меняются они относительно редко.

Думаю, я мог бы просто изменить это с относительного URL на полностью явный, верно?

<%@ Page Title="WhateverPage" Language="C#" MasterPageFile="~/MyMasterPage.master" %>

Затем в любом другом месте сайта, где есть ссылка на страницу, сделайте ссылку на URL-адрес страницы в хранилище BLOB-объектов.

Это кажется выполнимым или есть препятствия, о которых я не думаю?


person jrichview    schedule 14.02.2012    source источник


Ответы (1)


Перенос статического содержимого в хранилище BLOB-объектов отлично работает. Просто не забудьте поместить свой статический контент в общедоступные контейнеры. И ... пока вы это делаете, вам следует подумать о перемещении всех статических изображений, таблиц стилей и т. Д. В blob-объекты.

Большая задача будет заключаться в просмотре всего вашего контента, модификации и других тегов на этих статических страницах, чтобы явно указать на хранилище BLOB-объектов, если это необходимо (например, вы можете хранить свои изображения в другой учетной записи хранения).

Вы также получите несколько преимуществ:

  • Меньший пакет развертывания (как вы уже упоминали)
  • Возможность обновить одну страницу или изображение без повторного развертывания, просто купите загрузку нового элемента в хранилище BLOB-объектов.
  • Снижение спроса на IIS и ваши вычислительные экземпляры

Однако одно предостережение: у вас не может быть страницы по умолчанию. То есть, если вы просто укажете на http://mywebsiteinblobstorage.com, вы не сможете указать объект по умолчанию (скажем, default.html).

person David Makogon    schedule 15.02.2012
comment
Это определенно будет трудной задачей, но я могу пойти по этому пути. Но кое-что меня все еще беспокоит. В ссылке на главную страницу мне нужно было бы указать явный URL-адрес. Я развертываю одну из трех разных веб-ролей. У нас есть тестовая площадка и производственная площадка. У тестового сайта есть одна веб-роль, а у производственного сайта одна роль для промежуточного сайта и одна роль для действующего сайта. Поэтому я не могу жестко закодировать там URL-адрес. - person jrichview; 16.02.2012
comment
Вы не можете просто перенаправить HTTP-запрос на новый URL-адрес, поскольку веб-сервер ASPNET не отвечает на эти запросы. Думаю, вам придется самому читать содержимое файла из блоба? Пользовательский модуль HTTP? - person jrichview; 16.02.2012
comment
Хорошо, вот мое решение: jvshangout.wordpress.com/2012/02/17/ - person jrichview; 17.02.2012