I'm trying to make a subdirectory (config) in a Web Deploy package writable to the application pool user. It looks as though I'm trying to do exactly what is in this post: Can Web Deploy's setAcl provider be used on a sub-directory?
The publish works properly but the DefaultAppPool only has read access to the config directory . I've created the {ProjectName}.wpp.targets file below and the following ACL entry for the config folder is generated in my sitemanifest.
{ProjectName}.wpp.targets
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="SetupCustomAcls" AfterTargets="AddIisSettingAndFileContentsToSourceManifest">
<ItemGroup>
<MsDeploySourceManifest Include="setAcl">
<Path>$(_MSDeployDirPath_FullPath)\config</Path>
<setAclAccess>Read,Write,Modify</setAclAccess>
<setAclResourceType>Directory</setAclResourceType>
<AdditionalProviderSettings>setAclResourceType;setAclAccess</AdditionalProviderSettings>
</MsDeploySourceManifest>
</ItemGroup>
</Target>
<Target Name="DeclareCustomParameters" AfterTargets="AddIisAndContentDeclareParametersItems">
<ItemGroup>
<MsDeployDeclareParameters Include="Config Folder">
<Kind>ProviderPath</Kind>
<Scope>setAcl</Scope>
<Description>Add write permission to config folder.</Description>
<DefaultValue>$(_DestinationContentPath)\config</DefaultValue>
<Match>^$(_EscapeRegEx_MSDeployDirPath)\\config$</Match>
<Value>$(_DestinationContentPath)/config</Value>
<ExcludeFromSetParameter>True</ExcludeFromSetParameter>
</MsDeployDeclareParameters>
</ItemGroup>
</Target>
</Project>
When I change Include ACLs to true in the Advanced section, the parameter is provided but is not being applied.
Note: I'm not sure if this is relevant but the following lines are present in the Details pane of the installation summary.
[24/04/2012 1:41:46 PM] Source setAcl (C:\Users\benr\Desktop\eippk\obj\Release\Package\PackageTmp\config) does not match destination (Default Web Site/WAT_FLNet_deploy/config) differing in attributes (isDest['False','True'],setAclUser,setAclAccess). Update pending.
[24/04/2012 1:41:46 PM] Updating setAcl (Default Web Site/WAT_FLNet_deploy/config).
I'm hoping it's something simple but can anyone help?
EDIT: OK, this works properly on a Server 2008 R2 install. It looks like this is due to the Management Service not being included on Windows Client SKUs. Supposedly you can install it separately but I've tried full installs of both the Web Platform Installer 3.0 and the Web Deploy 2.1 with no success. Any ideas welcome.