【发布时间】:2013-01-02 07:17:43
【问题描述】:
我很难确定增加性能计数器所需的权限。尝试在计数器上调用 .Increment 时,我只发生了一次 InvalidOperationException/Access Denied(我认为)。这导致我得到以下信息:
http://support.microsoft.com/kb/555129
围绕移动 ASP.NET 过程的最大问题 将性能计数器更新到生产中的应用程序 环境就是权限。默认情况下,为了增加 性能计数器,用户需要有管理员或权力 用户权限。
从那里我将用户添加到高级用户组并继续我的方式没有问题。后来我发现“超级用户”不再具有 Vista 之外的任何权限,这让我回到了同一篇文章:
幸运的是,考虑到这些替代方案,事实证明 更新性能计数器所需的权限集要小得多 而不是以管理员或高级用户身份运行。在注册表项中 HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib,设置 访问控制列表,以便必要的用户拥有完全控制权。在 我们最初的示例,ASPNET 用户将被授予完全控制权, 但是任何需要更新表演的人都可以访问 计数器。
但即使这样似乎也不是真的,因为我现在已经返回并从超级用户组中删除了我的测试用户,我的应用程序仍在递增计数器而没有问题。
此外,如果要设置权限,似乎会在 HKLM\System\CurrentControlSet\services\ 下的个人计数器上。
我完全承认我的代码可能存在其他问题,导致我最初的权限问题。但是,我需要将其一直部署回 XP,因此确认以上内容是否只是过时的信息或完全不正确对我来说很重要。我很快就能自己确认这一点,但如果有人可以验证信息或向我指出具体的文档,那就太好了。
【问题讨论】: