Можно ли использовать поставщик setAcl Web Deploy в подкаталоге?

Я пытаюсь сделать подкаталог в пакете MS Deploy доступным для записи пользователю пула приложений. Благодаря полезному сообщению Кевина Литэма о поставщике setAcl я смог поместить большую часть того, что мне нужно, в свой файл проекта:


  $(_MSDeployDirPath_FullPath)\doc\public
  Read,Write,Modify
  Directory
  setAclResourceType;setAclAccess

Обратите внимание, что я добавил "\ doc \ public" в корневой каталог развертывания. В результирующем манифесте, созданном VS2010, я вижу следующий элемент setAcl:


  
  
  
  

Эта последняя строка выглядит хорошо: она добавила подкаталог, который я хочу сделать доступным для записи, и все модификаторы доступа, похоже, переданы достаточно хорошо.

Однако, когда я развертываю этот пакет, я получаю сообщение об ошибке:

Ошибка: значение для параметра 'setAclUser' должно быть указано, когда Поставщик setAcl используется с физическим путем.

Это сбивающая с толку ошибка, потому что я пытаюсь установить ACL не для физического пути, а для подкаталога веб-приложения. Глядя на вывод MS Deploy, легко увидеть проблему:

Info: Adding setAcl (REST Services\1.0.334).
Info: Adding setAcl (REST Services\1.0.334).
Info: Adding setAcl (C:\...\obj\Release\Package\PackageTmp\doc\public).

MS Deploy явно заменяет имя веб-приложения на мой абсолютный путь «C: ... \ obj \ Release \ Package \ PackageTmp», но когда я добавьте к этому абсолютному пути «\ doc \ public», он больше не распознает его как каталог веб-приложения. Эта точная проблема описана другой жертвой на форумах ASP.NET без какого-либо решения.

Кто-нибудь знает, как установить ACL для определенного подкаталога веб-приложения через веб-развертывание без ручного определения физического пути и пользователя пула приложений на целевом хосте?

18
задан ladenedge 28 July 2011 в 15:59
поделиться