繁体   English   中英

确保将 IIS AppPool 用户添加到 windows 组

[英]Ensure that IIS AppPool user is added to windows group

我正在尝试使用 Powershell(由 Ansible 运行)将 ASP.NET 应用程序部署到 IIS。

我希望我的应用程序能够查询性能计数器,因此我使用此 Powershell 脚本将其添加到性能监视器用户中:

appPoolName=$args[0]

$group = [ADSI]"WinNT://$Env:ComputerName/Performance Monitor Users,group"

$ntAccount = New-Object System.Security.Principal.NTAccount("IIS AppPool\$appPoolName")
$strSID = $ntAccount.Translate([System.Security.Principal.SecurityIdentifier])
$user = [ADSI]"WinNT://$strSID"

$group.Add($user.Path)

它实际上来自另一个 SO 问题: Add IIS AppPool\\ASP.NET v4.0 to local windows group

部署后,可能会发生将用户添加到组但应用程序仍然无法访问性能计数器的情况。

该脚本在启动应用程序池和应用程序之前运行。 我尝试了以下事情,但没有成功:

我通过以下方式修改了我的部署脚本,但没有成功:

  • 在添加之前从组中删除用户
  • 添加用户后重启应用池。 IIS 实际上抱怨(“该服务此时无法接受消息”)。
  • 启动应用程序后将用户添加到组中
  • 在部署开始时将用户添加到组中(在停止应用程序和池之前)

我必须解决我的问题的唯一方法是重新启动机器。 我想知道有没有更好的!

如果可能,我认为让 App Pool 用户注销并重新登录可以解决我的问题。 我还没有找到如何做到这一点(重新启动或回收应用程序池不起作用)。

答案是一个简单的iisreset (在命令行或 Powershell 中)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM