2012-06-15 164 views
1

期間我使用事件日誌這樣的:事件日誌 - 錯誤寫

if(!EventLog.SourceExists("Service")) 
       EventLog.CreateEventSource("Service","Sending notification email error"); 
       EventLog.WriteEntry("Service", 
            System.String.Format("Sending notification email error {0} \n {1} \n From {2} \n To {3} ", 
            Error.Message,Error.StackTrace,From!=null?From.Address:"", 
            To!=null?string.Join(",",To.ToList()):""), 
            EventLogEntryType.Warning,2); 

我有相同的解決方案的兩個項目的代碼。但是,當我嘗試記錄生產信息 - 一個代碼日誌成功時,其他給我的錯誤

未找到源,但部分或全部事件日誌無法搜索。不可訪問的日誌:安全

我找不到帶來的不同,其他不工作:/

我不喜歡這個blog,但我指的是.NET 4.0的文件夾會導致我的應用程序使用.NET4。

有什麼想法?

+0

執行您使用代碼的兩個項目在不同帳戶下運行,因爲它們似乎其中一個沒有寫入這些日誌的權限。 – kmcc049

回答

2

您必須是管理員才能創建事件日誌源。你有正確的權利嗎?

+0

@netmajor錯過了那個抱歉,已更新 –

+0

您的意思是關於此:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ eventlog \ Service? – netmajor

+1

是的,如果它沒有創建它,你可以隨時創建它 –

0

MSDN表示CreateEventSource方法可能需要一些時間來創建事件源 - 這就是爲什麼您應該在安裝過程中執行此操作,以便OS爲OS設置一些事件源。也許這是你問題的根源。