Asp.net Web Deploy dump dirPath不与委派和非管理员用户一起工作

Asp.net Web Deploy dump dirPath不与委派和非管理员用户一起工作,asp.net,msdeploy,webdeploy,Asp.net,Msdeploy,Webdeploy,我正在尝试运行以下Web部署命令: msdeploy.exe -verb:dump -source:dirPath="C:\Deploy",wmsvc=localhost,username=<user>,password=<pass> msdeploy.exe-verb:dump-source:dirPath=“C:\Deploy”,wmsvc=localhost,username=,password= 我试着用两个用户运行这个,John和Mary。约翰是盒子上管理员

我正在尝试运行以下Web部署命令:

msdeploy.exe -verb:dump -source:dirPath="C:\Deploy",wmsvc=localhost,username=<user>,password=<pass>
msdeploy.exe-verb:dump-source:dirPath=“C:\Deploy”,wmsvc=localhost,username=,password=
我试着用两个用户运行这个,John和Mary。约翰是盒子上管理员组的成员,玛丽不是;该命令对约翰有效,但对玛丽无效

我有以下设置:

  • Mary可以通过ACL完全访问C:\Deploy(管理员组也是如此)
  • John和Mary都已被授予使用委派功能访问IIS中的C:\Deploy目录路径的权限(见下文)
My administration.config条目:

<rule enabled="true" providers="dirPath" actions="*" path=".*" pathType="RegularExpression">
    <runAs identityType="SpecificUser" userName="AnAdministrator" password="..." />
    <permissions>
        <user name="PC\John" isRole="false" accessType="Allow" />
        <user name="PC\Mary" isRole="false" accessType="Allow" />
    </permissions>
</rule>

当我将Mary添加到Administrators组时,该命令起作用。但授权的全部意义在于能够以非管理员的身份运行部署命令。我可以运行其他命令(例如-verb:dump-source:appHostConfig=“Default Web Site”),这对Mary很好-只是dirPath不起作用

对于失败的命令,WMSvc.log似乎不包含任何错误-但是我可以看到成功的错误。我确实在失败的请求跟踪中看到了401的HEAD请求,但没有说明它发生的原因

感谢所有指针。

您的运行方式标识“AnAdministrator”需要具有访问c:\Deploy的权限,因为Mary和John都将被模拟为该用户(如果原始标识失败,John则不会)。ACL C:\Deploy for AnAdministrator用户,然后重试


您还可以使用该工具检查您的环境是否已准备好进行委派部署。

zcrar70,您是对的:委派只在用户有权访问站点范围时生效。在您的示例中,如果您已授予PC\Mary对该站点的访问权限(通过IIS管理器权限),则这将正常工作


你能进一步解释一下你的情况吗?您正在尝试授予非管理员用户在所有站点上运行特定提供程序的权限吗?

感谢您的回复-AnAdministrator用户确实有权使用C:\Deploy-如上所述,该命令对John很有效(他也被模拟为同一个“AnAdministrator”用户)下载ServerValidator后,我将尝试它……我刚刚运行了ServerValidator,它似乎没有通过“检查Web部署委派规则”测试——从日志中看,如果它没有找到几乎所有提供者的委派规则,它似乎会失败,而我只设置了dirPath、contentPath和appHostConfig。对于我设置的站点(它们在日志中显示为绿色)似乎已经足够满意了。我会让WebDeploy团队的人来看看这一点。我现在想知道授权是否仅限于用户可以访问的站点-我可以使用contentPath=“Default Web Site”很好,但我不能使用dirPath=“C:\deploy”(尽管在这两种情况下ACL是相同的——我甚至尝试让每个人都能完全控制C:\Deploy。)如果这是正确的,那将很烦人,因为这将限制许多部署场景。感谢您的响应。在这种情况下,我尝试转储的dirPath实际上不是站点的一部分。最终,我尝试执行以下操作:*将包含构成站点的文件的新版本的包上载到服务器(以及部署所需的其他文件,如DB迁移脚本、COM组件等);*将现有IIS站点指向新文件。我想通过一个对服务器没有完全管理员访问权限的用户来运行此操作,例如(有问题?)出于安全目的。无法上载到IIS站点之外的文件夹将排除此情况。