Requested registry access is not allowed

Requested registry access is not allowed(不允許所請求的註冊表訪問權)


今天在寫一個Service程序時候遇到這個問題,因爲在家裏電腦上沒有問題的(XP),不成想在公司的Win7上居然出現這個問題,猜測應該是Win7的權限管理問題。

問題出現在如下創建一個EventLog的代碼中,

  1. public void LogEvent(String Message, EventLogEntryType type) 
  2.     string source = "DemoSource"
  3.      
  4.     if (!EventLog.SourceExists(source)) 
  5.     { 
  6.         EventLog.CreateEventSource(source, "DemoLog"); 
  7.     } 
  8.  
  9.     _log = new EventLog(); 
  10.     _log.Source = source; 
  11.     LogEvent(Message, type); 
  12.  } 

因爲是使用VS調試的,就想還是用管理員權限來跑一下試試(i.e. Run as administrator),結果果然很靈光,順利通過。

然後去谷哥上Search一下:


EventLog.CreateEventSource()

如果以普通用戶身份登錄計算機,並嘗試使用 Microsoft Visual Studio .NET 創建自定義事件日誌以註冊事件,可能會收到以下錯誤消息:

An unhandled exception of type 'System.Security.SecurityException' occurred in mscorlib.dll
Additional information:Requested registry access is not allowed.

出現此問題的原因在於登錄所用的用戶帳戶沒有足夠的權限。
首次調用 EventLog.CreateEventSource() 方法創建自定義事件日誌時,將會在下面的註冊表子項下創建自定義事件日誌條目:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog

要創建此子項條目,必須擁有寫權限。但是,普通用戶帳戶沒有寫權限。因此,會收到“症狀”部分中提到的錯誤消息。

警告:如果使用註冊表編輯器或其他方法錯誤地修改了註冊表,則可能導致嚴重問題。這些問題可能需要重新安裝操作系統才能解決。Microsoft 不能保證可以解決這些問題。修改註冊表需要您自擔風險。
要解決此問題,請使用下列方法之一:

  • 授予創建自定義事件日誌的權限
  • 以管理員身份安裝自定義事件日誌
授予創建自定義事件日誌的權限
  1. 以管理員身份登錄計算機。
  2. 依次單擊“開始”和“運行”,在“打開”框中鍵入 regedit,然後單擊“確定”。這將打開“註冊表編輯器”窗口。
  3. 找到以下註冊表子項:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog

  4. 右鍵單擊“Eventlog”,然後單擊“權限”。這將顯示“Eventlog 的權限”對話框。
  5. 單擊“高級”。此時顯示“Eventlog 的高級安全設置”對話框。
  6. 在“名稱”列中,雙擊“Users”組。這將顯示“Eventlog 的權限項目”對話框。
  7. 依次選中“設置數值”和“創建子項”複選框,然後單擊“確定”。
  8. 退出註冊表編輯器,然後從管理員帳戶中註銷。
  9. 以普通用戶身份登錄計算機。
  10. 嘗試使用 Visual Studio .NET 創建自定義事件日誌,然後嘗試使用基於 Visual Studio .NET 構建的應用程序寫入此事件日誌。
以管理員身份安裝自定義事件日誌
  1. 以管理員身份登錄計算機。
  2. 使用 Visual Studio .NET 中的 CreateEventSource 方法創建自定義事件日誌和事件日誌源。
  3. 從管理員帳戶註銷。
  4. 以普通用戶身份登錄計算機。
  5. 通過運行應用程序將條目寫入自定義事件日誌。

From: http://support.microsoft.com/kb/842795/zh-cn

問題清楚了,而且還找到了事件日誌在註冊表中位置,下次可以直接刪除你不想要的測試日誌了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章