我正在尝试使用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。
部署后,可能会将用户添加到组中,但应用程序仍无法访问性能计数器。
脚本在启动App Pool和应用程序之前运行。 我尝试了以下事情,没有成功:
我已通过以下方式修改了部署脚本,但没有成功:
我必须解决问题的唯一方法是重启机器。我想知道是否有更好的一个!
如果有可能,我认为让App Pool用户注销并重新启用可以解决我的问题。我还没有找到如何做到这一点(重新启动或回收App Pool不起作用)。
答案 0 :(得分:1)
答案很简单iisreset
(在命令行或Powershell中)。