Asp.net

訪問性能計數器時“拒絕訪問系統資料庫項‘全域’”

  • June 25, 2013

我正在嘗試從我的 ASP.NET 應用程序中讀取一些性能計數器。當我這樣做時,我收到錯誤“拒絕訪問系統資料庫項‘全域’。”

我嘗試按照此處此處的說明使用 user IIS AppPool\DefaultAppPool,這是我的應用程序池配置使用的身份:

App Pool 配置截圖

我已將該使用者添加到 Performance Monitor Users 組:

在此處輸入圖像描述

添加使用者後,我重新啟動了電腦。但我仍然收到錯誤消息。

我還嘗試將使用者 IUSR 和 NETWORK SERVICE 添加到性能監視器使用者組,但這些也不起作用。出於絕望,我嘗試將使用者“Everyone”添加到 Performance Monitor Users 組,這確實有效。但我的目標是在生產中記錄我的應用程序的統計資訊,我不想將“每個人”添加到生產伺服器上的該組中。

為了在不產生安全異常的情況下讀取性能計數器,還需要發生什麼?

我找到了解決方案。儘管 Internet 上的各種連結告訴您使用身份IIS APPPOOL\DefaultAppPool,但這並不是全部。當您實際上將應用程序分配給名為“DefaultAppPool”的應用程序池時,這才有效。

ServerFault 的這個連結有答案。您必須使用您的應用程序池的名稱。在我的例子中,應用程序池的名稱是“staging”,所以正確的使用者是IIS APPPOOL\staging. 將此使用者放在性能監視器使用者組中解決了我的問題。

引用自:https://stackoverflow.com/questions/17301640