2012-07-24 67 views
3

我嘗試從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文件夾的用戶明確的訪問,但沒有任何幫助。

任何幫助是極大的讚賞。

回答

0

HatSoft是完全正確的,你需要擁有管理員權限創建性能計數器 - 東西,你通常只需要以創造計數器進行一次。一旦創建了它們,您就可以輕鬆實例化一個性能計數器,然後使用它。

我們通常(在應用程序開發之後)將此過程的這一步放在安裝過程中 - 一旦設置好,應用程序就可以隨意使用這些計數器。

我已經在GitHub上的一個項目,顯示性能計數器基本用法,它應該幫助您開始: https://github.com/stemarie/Karell.PerfCounters 您將需要運行VS管理員身份(右擊,以管理員身份運行),以便爲單位測試運行正常。