我正在尝试运行以下 Web 部署命令:
msdeploy.exe -verb:dump -source:dirPath="C:\Deploy",wmsvc=localhost,username=<user>,password=<pass>
我曾尝试与两个用户 John 和 Mary 一起运行它。约翰是盒子管理员组的成员,玛丽不是;该命令适用于 John,但适用于 Mary 的 401 失败。
我有以下设置:
- Mary 通过 ACL 拥有对 C:\Deploy 的完全访问权限(管理员组也是如此)
- John 和 Mary 都被授予使用委托功能访问 IIS 中的 C:\Deploy dirPath 的权限(见下文)
我的 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 组时,该命令有效。但委托的全部意义在于能够以非管理员身份运行部署命令。我可以为 Mary 运行其他命令(例如 -verb:dump -source:appHostConfig="Default Web Site") - 它只是 dirPath 不起作用。
WMSvc.log 似乎不包含失败命令的任何错误——不过我可以看到成功的命令。我确实在失败的请求跟踪中看到了 HEAD 请求的 401,但没有任何迹象表明它为什么会发生......
任何指针表示赞赏。