性能计数器 - 性能类别创建错误
我尝试从ASP.NET应用程序创建新的性能类别时出现错误。最初我遇到了一些与注册表有关的问题,但通过给用户某些注册表项的权限并将其添加到“性能日志用户”和“性能监视器用户”组来解决它们。但现在我得到一个异常,我不知道还有什么要尝试。性能计数器 - 性能类别创建错误
PerformanceCounterCategory.Create(testName, testDescription, PerformanceCounterCategoryType.Unknown, counters);
testName
和是字符串变量,它包含名称和类别和计数器的描述是CounterCreationDataCollection 有3个计数器:
的错误,当我执行这条线发生。
这里是异常的堆栈跟踪:在 System.Diagnostics.PerformanceCounterLib.RegisterCategory
在System.Diagnostics.PerformanceCounterLib.RegisterFiles(字符串 为arg0,布尔取消注册)(字符串类别名称 ,PerformanceCounterCategoryType categorytype,String categoryHelp,CounterCreationDataCollection creationData)at System.Diagnostics.PerformanceCounterCategory.Create(String categoryName,String categoryHelp,PerformanceCounterCategoryType categoryType,Counter CreationDataCollection counterData)在 CL.Libraries.PerformanceTestUtils.InitializeCounters(List`1 usedCounters,字符串测试名,字符串testDescription)在 C:\ CL.Libraries \ PerformanceTestUtils.cs:线104
看来我不能张贴所以这里的图像就是我得到:
出现“UnauthorizedAccessException被抓:
无法创建或删除性能分类‘C:\ TEMP \ tmpD5E8.tmp’ 因为我的访问否认。 “
类别键在注册表中创建。上面提到的文件被创建,然后删除了。我给到Temp文件夹的用户明确的访问,但没有任何帮助。
任何帮助是极大的赞赏。
您的代码是没有管理权限执行,并有 尝试读取性能计数器。
你需要管理权限
上述消息是从MSDN http://msdn.microsoft.com/en-us/library/sb32hxtc.aspx采取
HatSoft是完全正确的,你需要拥有管理员权限创建性能计数器 - 东西,你通常只需要以创造计数器进行一次。一旦创建了它们,您就可以轻松实例化一个性能计数器,然后使用它。
我们通常(在应用程序开发之后)将此过程的这一步放在安装过程中 - 一旦设置好,应用程序就可以随意使用这些计数器。
我已经在GitHub上的一个项目,显示性能计数器基本用法,它应该帮助您开始: https://github.com/stemarie/Karell.PerfCounters 您将需要运行VS管理员身份(右击,以管理员身份运行),以便为单位测试运行正常。
你救了我的一天。谢谢 – 2014-11-26 08:41:01