Публикация файлов содержимого в проекте облачной службы 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 позволяют вам взаимодействовать с файлами и папками из центрального расположения, как общий сетевой ресурс:
Вы всегда можете читать и писать файлы прямо из BLOB-объектов Azure:
Если ваши файлы содержимого HTML являются общедоступными и получают более чем небольшой объем трафика, вы можете также рассмотреть возможность использования службы CDN Azure для их размещения:
Удачи!