Публикация файлов содержимого в проекте облачной службы Azure

У меня есть проект Azure Cloud Service, написанный на C#. Этот проект содержит рабочую роль Azure.

Моя рабочая роль - это ссылка на другой проект (в том же решении), в котором содержится каталог. В этом каталоге 10 файлов HTML. Все эти файлы помечены этими настройками (настройки файлов):

Действие построения: содержание

Копировать в выходной каталог: копировать, если новее

Я создаю свою рабочую роль, и эти файлы содержимого расположены по этому пути: bin/release/my-files/ реж. Итак, конфигурация моего проекта выглядит хорошо.

Я публикую свой облачный сервис Azure в Azure, а файлы содержимого не загружаются. Я проверил это, подключившись к компьютеру с помощью удаленного рабочего стола, и проверил этот путь: "E:\ Approot". мои файлы содержимого не там.

Что я должен сделать, чтобы загрузить эти файлы содержимого?

Обновить

Спасибо за комментарий @Gaurav_Mantri, я проверил файл CSSX, и мои файлы содержимого там отсутствуют. Нет, я не удивляюсь, что моя голубая рабочая роль тоже пропала после публикации.

Я также попытался изменить "Копировать в выходной каталог -> Копировать всегда". Тот же результат.

2 ответа

Не совсем ответ, но одна вещь, которую вы можете проверить, включены ли файлы в сам пакет. По сути файл пакета (*.cspkg) представляет собой ZIP-файл. Что вы можете сделать, это изменить расширение файла с cspkg в zip и извлеките этот файл.

После того, как вы извлечете zip-файл, вы увидите файлы с cssx расширение для каждой из ваших ролей. Измените расширение этих на zip а также и разархивировать эти файлы.

Если все настроено правильно, вы сможете увидеть эти файлы в соответствующем каталоге. Если файлов там нет, значит, что-то не так (очевидно). В этом случае вы можете попробовать изменить Copy to output directory в Copy Always вместо Copy if newer настройки, которые у вас есть в данный момент.

Общее руководство состоит в том, чтобы по возможности избегать взаимодействия локальной файловой системы в облачных сервисах и PaaS, поскольку (помимо прочего) требуется дублирование контента на каждой виртуальной машине в вашем решении (не обязательно тривиальная задача перед лицом автоматического масштабирования, так далее.). У вас есть несколько вариантов в Azure:

Файлы Azure позволяют вам взаимодействовать с файлами и папками из центрального расположения, как общий сетевой ресурс:

Хранилище файлов Azure

Вы всегда можете читать и писать файлы прямо из BLOB-объектов Azure:

Хранилище BLOB-объектов Azure

Если ваши файлы содержимого HTML являются общедоступными и получают более чем небольшой объем трафика, вы можете также рассмотреть возможность использования службы CDN Azure для их размещения:

Лазурный CDN

Удачи!

Другие вопросы по тегам