Requested registry access is not allowed(不允許所請求的註冊表訪問權)
今天在寫一個Service程序時候遇到這個問題,因爲在家裏電腦上沒有問題的(XP),不成想在公司的Win7上居然出現這個問題,猜測應該是Win7的權限管理問題。
問題出現在如下創建一個EventLog的代碼中,
- public void LogEvent(String Message, EventLogEntryType type)
- {
- string source = "DemoSource";
- if (!EventLog.SourceExists(source))
- {
- EventLog.CreateEventSource(source, "DemoLog");
- }
- _log = new EventLog();
- _log.Source = source;
- LogEvent(Message, type);
- }
因爲是使用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 出現此問題的原因在於登錄所用的用戶帳戶沒有足夠的權限。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog 要創建此子項條目,必須擁有寫權限。但是,普通用戶帳戶沒有寫權限。因此,會收到“症狀”部分中提到的錯誤消息。 警告:如果使用註冊表編輯器或其他方法錯誤地修改了註冊表,則可能導致嚴重問題。這些問題可能需要重新安裝操作系統才能解決。Microsoft 不能保證可以解決這些問題。修改註冊表需要您自擔風險。
授予創建自定義事件日誌的權限
以管理員身份安裝自定義事件日誌
|
問題清楚了,而且還找到了事件日誌在註冊表中位置,下次可以直接刪除你不想要的測試日誌了。