[英]Writing to an event log in ASP.NET on Windows Server 2008 IIS7
[英]What do I need to change to allow my IIS7 ASP.Net 3.5 application to create an event source and log events to Windows EventLog?
在IIS 7下運行的ASP.Net 3.5似乎不允許開箱即用。
if (!EventLog.SourceExists("MyAppLog"))
EventLog.CreateEventSource("MyAppLog", "Application");
EventLog myLog = new EventLog();
myLog.Source = "MyAppLog";
myLog.WriteEntry("Message");
我從這里復制了這個答案(問題是Log4Net,但答案仍然適用)。 technet鏈接錯過了至關重要的一步。
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\services\\eventlog\\Application\\MY-AWESOME-APP
將其命名為EventMessageFile
,將其值設置為
C:\\ WINDOWS \\ Microsoft.NET \\框架\\ V2.0.50727 \\ EventLogMessages.dll
該路徑似乎適用於64位和32位環境。
使用此技術,您無需在注冊表中設置權限,並且一旦創建了上面的密鑰,它就可以正常工作。
另外
如果您沒有大型服務器場但只有一個小型“Web園”,則可以在使用EventLog.CreateEventSource
創建事件日志源的每台服務器上運行控制台應用程序,確保控制台應用程序由管理員運行。
從Windows 2003開始,這是Windows安全性的一部分。
您需要在HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Services \\ Eventlog \\ Application下的注冊表中創建一個條目確保網絡服務或您模擬的帳戶具有此注冊表項的權限。
@ CheGueVerra的鏈接: 不允許請求的注冊表訪問
右鍵單擊該應用程序並選擇“以管理員身份運行”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.