当前位置:  开发笔记 > 后端 > 正文

我需要更改以允许我的IIS7 ASP.Net 3.5应用程序创建事件源并将事件记录到Windows EventLog?

如何解决《我需要更改以允许我的IIS7ASP.Net3.5应用程序创建事件源并将事件记录到WindowsEventLog?》经验,为你挑选了2个好方法。

在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,请确保控制台应用程序由管理员运行.



1> Chris S..:

我从这里复制了这个答案(问题是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,请确保控制台应用程序由管理员运行.



2> Aaron Fische..:

从Windows 2003开始,这是Windows安全性的一部分.

您需要在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application下的注册表中创建一个条目确保网络服务或您模拟的帐户具有此注册表项的权限.

@ CheGueVerra的链接:不允许请求的注册表访问

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有