msdeploy 如何将 IIS_IUSRS 的读/写权限授予 c :\windows\temp folder

标签 msdeploy

我正在项目 wpp.targets 文件的 ItemGroup 中添加这个项目。

<MsDeploySourceManifest Include="setAcl">
    <Path>%windir%\TEMP</Path>
    <setAclUser>IIS_IUSRS</setAclUser>
    <setAclAccess>Read,Write,Modify</setAclAccess>
    <setAclResourceType>Directory</setAclResourceType>
    <AdditionalProviderSettings>setAclUser;setAclResourceType;setAclAccess</AdditionalProviderSettings>
</MsDeploySourceManifest>

这在参数部分

<MsDeployDeclareParameters Include="TempFolderPermissionSetAclParam">
    <Kind>ProviderPath</Kind>
    <Scope>setAcl</Scope>
    <Description>Add read, write permission for IIS_IUSRS to the temp folder.</Description>
    <DefaultValue>%windir%\TEMP</DefaultValue>
    <Value>%windir%\TEMP</Value>
    <Tags>Hidden</Tags>
    <Priority>$(VsSetAclPriority)</Priority>
    <ExcludeFromSetParameter>True</ExcludeFromSetParameter>
  </MsDeployDeclareParameters>

它在 list xml 文件中生成这一行

但是有一条错误信息说: 错误:“setAcl”时必须指定“setAclUser”设置的值 provider 与物理路径一起使用。

这里缺少什么?

最佳答案

您问这个问题已经有一段时间了,但从表面上看,这看起来或多或少是正确的:指定绝对路径的关键点是您在 AdditionalProviderSettings 中包含 setAclUser,以及 setAclUser 的元素。

最终,虽然您的 SourceManifest 文件在构建包时可能看起来是正确的,但似乎重要的是创建的 zip 中包含的 archive.xml 文件中 setAcl 元素的 setAclUser 设置。打开它并确保存在您期望的 setAclUser 值。

此外,Visual Studio 在涉及 MSBuild 文件的地方自由使用缓存;实际上,Visual Studio 似乎只会尊重对 pubxml 文件和项目文件(如 csproj)所做的更改。对任何其他目标文件进行更改时,您应该关闭 Visual Studio 并在每次编辑后重新打开。这可以解释为什么您看似正确的解决方案不起作用:它可能只是过时的目标文件缓存。

关于msdeploy 如何将 IIS_IUSRS 的读/写权限授予 c :\windows\temp folder,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16989911/

相关文章:

jenkins - MS Web Deploy 忽略 <setParameter> 条目 + 写入错误的文件

visual-studio - Web 部署任务失败。无法连接...服务器没有响应

visual-studio - 如何通过VS和MSDeploy设置控制用于部署的AppPool

.net - 用 MSDeploy 替换整个配置文件

visual-studio - 使用Visual Studio 2012构建部署包

msbuild - 通过 Web 部署来部署 SSDT

visual-studio-2010 - VS2010、MSDeploy和参数声明

asp.net-mvc - 如何在 ASP.NET MVC 项目中指定默认应用程序池?

c# - Web 部署代理服务返回 500 内部服务器错误

msdeploy - 是否可以使用 MSDeploy 修改现有站点的 web.config?