在IIS 7下运行的ASP.Net 3.5似乎不允许开箱即用.
if (!EventLog.SourceExists("MyAppLog")) EventLog.CreateEventSource("MyAppLog", "Application"); EventLog myLog = new EventLog(); myLog.Source = "MyAppLog"; myLog.WriteEntry("Message");
Chris S.. 37
我从这里复制了这个答案(问题是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
,请确保控制台应用程序由管理员运行.
我从这里复制了这个答案(问题是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的链接:不允许请求的注册表访问