[英]Cannot write to the Event log
ed我擁有C#ASP.NET 4.5 Webform應用程序,並使用以下代碼:
if (!EventLog.SourceExists(sSource)) EventLog.CreateEventSource(sSource, sLog);
EventLog.WriteEntry(sSource, message, level);
由於第一行失敗,因此我在注冊表中創建了HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ eventlog \\ Application \\ IDDISLOG
我在WriteEntry方法上收到以下異常:
Cannot open log for source 'IDDISLOG'. You may not have write access.
搜索了其他類似問題,但沒有一個對我有用。
到目前為止,這是我所做的:
在項目文件夾中添加了“網絡服務”
向中添加了Network service
,並為其提供了完全訪問權限。 HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ eventlog
向其添加了Nertwork服務,並為其提供了完全訪問權限。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security
檢查並看到w3wp.exe * 32進程以用戶名ASP.Net v4.0運行。
因此,將ASP.Net v4.0添加到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog
盡管如此,錯誤仍然存在
您的用戶帳戶可能沒有足夠的特權來創建事件源,只有管理員帳戶才能這樣做。 如果您可以管理員身份登錄,請再次運行代碼或在此處添加文件夾:HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ services \\ eventlog \\ Application \\ IDDISLOG
那應該允許您的應用程序使用該源寫入事件日志。 您可能需要進一步配置實際的注冊表項,以滿足您的需求。
在IIS(Windows服務器)中,您應該更改應用程序池使用的身份標識,因此新身份具有寫入事件日志的權限。 選擇應用程序池和高級設置。 然后編輯並插入自定義帳戶,althoug本地系統就足夠了。 如果使用自定義帳戶,請確保不要使用密碼將要過期的用戶,因為發生這種情況時,登錄事件日志將失敗。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.