csrun & cspack - какова цель sitePhysicalDirectories? - PullRequest
3 голосов
/ 17 мая 2011

Я пытаюсь собрать пакет развертывания Azure, используя cspack на своем сервере сборки для развертывания devfabric (csrun) на тестовом сервере.cspack покорно копирует двоичные файлы и файлы веб-ролей в пакет csx, но для каждой веб-роли также требуется путь sitePhysicalDirectory, который встроен в файл RoleModel.xml.Этот каталог должен существовать во время пакета.

После развертывания csrun устанавливает сайт IIS, который указывает непосредственно на путь sitePhysicalDirectory и, по-видимому, полностью игнорирует двоичные файлы веб-роли, упакованные в пакет csx.Излишне говорить, что тестовое развертывание на другом компьютере не работает.

Я что-то здесь упускаю?Почему cspack / csrun не может установить физический путь в IIS в соответствии с пакетом csx?Какова цель пакета csx, если упакованные двоичные файлы не используются?Что делает sitePhysicalDirectories в производственном развертывании Azure?

Ответы [ 3 ]

6 голосов
/ 17 мая 2011

Я начинаю думать, что ответ на все эти вопросы таков: «Потому что cspack / csrun - плохо спроектированные груды мусора, которые никогда не должны были доставляться».Похоже, что они созданы для поддержки Visual Studio и ничего более.

Обновление вручную файла RoleModel.xml, чтобы установить для атрибута PhysicalPath значение «Approot» (это относится к расположению RoleModel.xml) после того, как упаковка выглядит какжизнеспособный обходной путь.

2 голосов
/ 18 мая 2011

Я думаю, что это связано с добавлением Full IIS. Раньше у вас был подходящий каталог в Windows Azure как для процесса RoleEntryPoint, так и для хоста IIS WAS (один и тот же). Однако при полной IIS у вас будет w3wp.exe, выполняющий ваш веб-код, и процесс WaWorker, выполняющий RoleEntryPoint.

Было принято решение эффективно скопировать весь веб-сайт (на котором также есть WebRole.cs RoleEntryPoint) в новый каталог и получить там полный IIS root. Таким образом, вы заметите, что ваша упаковка для веб-ролей фактически содержит копию вашего кода дважды. Один раз для веб-сайта и один раз для WebRole.cs RoleEntryPoint. Только ваша RoleEntryPoint теперь выполняется вне очереди. Я не помню всех технических причин, по которым это произошло, но, возможно, было бы проще / безопаснее скопировать сайт, чем рискнуть пропустить зависимость.

1 голос
/ 26 сентября 2011

Я думаю, что sitePhysicalDirectory следует установить в качестве папки в AppRoot в вашем csx-пакете, а не в качестве источника двоичных файлов и файлов вашей веб-роли.

...