试图在子目录中使用Web Deploy的setAcl提供程序?

时间:2012-04-24 17:47:15

标签: visual-studio msdeploy webdeploy

我正在尝试在Web Deploy包中创建一个可写入应用程序池用户的子目录(config)。看起来好像我正在尝试完成这篇文章中的内容: Can Web Deploy's setAcl provider be used on a sub-directory?

发布工作正常,但DefaultAppPool只对config目录具有读访问权限。我在下面创建了{ProjectName} .wpp.targets文件,并在我的sitemanifest中生成了config文件夹的以下ACL条目。

{项目名} .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>

当我在“高级”部分中将“包含ACL”更改为“真”时,将提供参数但未应用该参数。

注意:我不确定这是否相关,但安装摘要的“详细信息”窗格中显示以下行。

[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).

我希望这很简单,但任何人都可以帮忙吗?

编辑:好的,这在Server 2008 R2安装上正常运行。看起来这是由于管理服务未包含在Windows客户端SKU中。据说您可以单独安装它,但我已经尝试完全安装Web Platform Installer 3.0和Web Deploy 2.1但没有成功。欢迎任何想法。

1 个答案:

答案 0 :(得分:0)

仅供参考:我卸载并重新安装WebDeploy,重新启动,现在正在运行! $%#@&安培;!