Asp.net
訪問性能計數器時“拒絕訪問系統資料庫項‘全域’”
我正在嘗試從我的 ASP.NET 應用程序中讀取一些性能計數器。當我這樣做時,我收到錯誤“拒絕訪問系統資料庫項‘全域’。”
我嘗試按照此處和此處的說明使用 user
IIS AppPool\DefaultAppPool,這是我的應用程序池配置使用的身份:
我已將該使用者添加到 Performance Monitor Users 組:
添加使用者後,我重新啟動了電腦。但我仍然收到錯誤消息。
我還嘗試將使用者 IUSR 和 NETWORK SERVICE 添加到性能監視器使用者組,但這些也不起作用。出於絕望,我嘗試將使用者“Everyone”添加到 Performance Monitor Users 組,這確實有效。但我的目標是在生產中記錄我的應用程序的統計資訊,我不想將“每個人”添加到生產伺服器上的該組中。
為了在不產生安全異常的情況下讀取性能計數器,還需要發生什麼?
我找到了解決方案。儘管 Internet 上的各種連結告訴您使用身份
IIS APPPOOL\DefaultAppPool,但這並不是全部。僅當您實際上將應用程序分配給名為“DefaultAppPool”的應用程序池時,這才有效。ServerFault 的這個連結有答案。您必須使用您的應用程序池的名稱。在我的例子中,應用程序池的名稱是“staging”,所以正確的使用者是
IIS APPPOOL\staging. 將此使用者放在性能監視器使用者組中解決了我的問題。

