2009-08-11 28 views
4

我與一些舊代碼工作(坦白地說,我不知道一半是做什麼的),試圖其移動到IIS7。問題在訪問/寫入到EventLog

一個我看到的問題是,我得到這個錯誤:

[拋出:SecurityException:源未找到,但一些或所有事件日誌不能被搜索到。不可訪問的日誌:安全。]

如果我手動去HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ EventLog \ Security並設置該密鑰的(安全)權限,讓「每個人」有完全訪問權限,這沒有問題。但顯然這不是最佳解決方案。

任何人都知道更好的方法來消除此異常?解決這個問題

回答

4

一種方法是運行在完全信任寫入違規源名稱在一個單一的事件日誌條目的簡單的控制檯應用程序。您必須爲每個服務器執行一次

從這一刻起,你應該能夠登錄該源名下。 (至少這是我的觀察。)這只是創建未知的來源,你不能在ASP.NET下做,登錄到現有的源應該不是一個問題。

問題是:你知道源名嗎?如果你不這樣做,暫時授予每個人的訪問權限,等待日誌消息,並刪除每個人也應該工作。

微軟官方的方式是創建註冊一個事件日誌源的安裝程序。

+0

兩個問題: 1)給予進入每個人的時候我沒有看到日誌信息。這很奇怪。 2)如何從安裝程序註冊事件日誌源(或針對該問題的自定義VB腳本)? – encee 2009-08-11 17:55:02

+0

像Rob Elliott說的'EventLog.CreateEventSource()'。這可能就是ASP.NET在開始記錄之前自己正在做的事情。 – Ruben 2009-08-11 18:25:04

+0

我試圖使一個VBScript,這是否: 進口系統 進口System.Diagnostics程序 EventLog.CreateEventSource「AppSource」,「應用程序」 ,但我得到一個錯誤說: 類型不匹配:「進口」 什麼在世界上這是否意味着? – encee 2009-08-11 18:33:58

1

this螺紋:還提供

EventLog.CreateEventSource() method attempts to search Event Sources under all event logs, not just the event log for which you want to create the source. There are two solutions to this. The first, easiest, and most insecure, is just to give read/write access to all event logs for the ASP.NET account.

代碼和其他解決方案。