ASP.NET中写入事件日志使用
文包含有关编辑注册表的信息。编辑注册表之前,务必先了解在发生问题时如何还原注册表。有关如何还原注册表的信息,请查看 regedit.exe 中的“还原注册表”帮助主题,或 regedt32.exe 中的“还原注册表项”帮助主题。 当你使用asp.net 向事件日志中写入一个新的“事件来源”时,可能会得到如下错误消息: system.security.securityexception: 不允许所请求的注册表访问权 原因 运行asp.net进程的默认怅户是aspnet(在iis6.0下面是networkservice),而此用户并没有权限来创建“事件来源”。 解决办法 注意:(编辑注册表会导致系统崩溃之类的微软吓你的话就不多说)。如果你需要解决此问题,在你运行此asp.net程序之前,则必须要由具有管理员权限的用户来创建一个“事件来源”。下面有几个方法用来创建 “事件来源”。 第一个方法 使用下列步骤在注册表编辑中在”应用程序日志”下面创建一个“事件来源” 1. 点击“开始”,再点击“运行”。 2. 在“打开”框中输入“regedit”。(来源www.iocblog.net) 3. 找到下列子键: hkey_local_machinesystemcurrentcontrolsetserviceseventlogpplication 4. 右击“application”点击“新建”再点“项” 5. 将此新建项重命名为“test” 6. 关闭注册表编辑器 第二个方法 在system.diagnostics命名空间中有一个eventloginstaller类。它能够创建和配置你的应用程序在运时要读写的事件日志。通过下列步骤,我们能够使用eventloginstaller类来创建一个“事件业源” 1. 用vb.net或c#来创建一个名为eventlogsourceinstaller的“类库”。 2. 在项目中添加对system.configuration.install.dll,的引用。 3. 将自动产生的class.vbclass.cs更命名为myeventloginstaller.vbmyeventloginstaller.cs。 4. 在myeventloginstaller.vb 或 myeventloginstaller.cs中的内容替换为以下代码: visual basic .net sample <runinstaller(true)> _ public sub new() visual c# .net sample public myeventloginstaller() // set the source of event log..computerdownloadfilesrticle, to be created. // set the log that source is created in // add myeventloginstaller to the installers collection. 5. 生成此项目,得到eventlogsourceinstaller.dll。 6. 打开visual studio .net 命令提示,转到eventlogsourceinstaller.dll所在目录。 7. 运行此命令来创建“事件来源”:installutil eventlogsourceinstaller.dll 更详尽的信息 我们通过一个创建一个web application来重现以上错误以及解决此问题。 1. 使用vb.net或c#建立一个asp.net web application。 2. 在webform1.aspx中的代码替换为以下代码: visual basic .net sample eventlog.createeventsource(ev.source..computerdownloadfilesrticle, "application") try <body> visual c# .net sample eventlog.createeventsource(ev.source..computerdownloadfilesrticle, "application"); try <body> 3. 按f5启动此项目。 4. 在textbox输入一些字符,然后点击write to event log。 5. 在上面“现象”部分中提到的错误消息会出现。 6. 要解决此问题,在webform1.aspx将下面这行代码注释 7. 重新启动此项目。 http://www.cnblogs.com/niit007/archive/2006/08/13/475510.html
现象
imports system.diagnostics
imports system.configuration.install
imports system.componentmodel
public class myeventloginstaller
inherits installer
private myeventloginstaller as eventloginstaller
' create an instance of 'eventloginstaller'.
myeventloginstaller = new eventloginstaller()
' set the 'source' of the event log..computerdownloadfilesrticle, to be created.
myeventloginstaller.source = "test"
' set the 'log' that the source is created in.
myeventloginstaller.log = "application"
' add myeventloginstaller to 'installercollection'.(来源www.iocblog.net)
installers.add(myeventloginstaller)
end sub
end class
using system;
using system.diagnostics;
using system.componentmodel;
using system.configuration.install;
namespace eventlogsourceinstaller
{
[runinstaller(true)]
public class myeventloginstaller : installer
{
private eventloginstaller myeventloginstaller;
{
//create instance of eventloginstaller
myeventloginstaller = new eventloginstaller();
myeventloginstaller.source = "test";
myeventloginstaller.log = "application";
installers.add(myeventloginstaller);
}
}
}
<%@ page language="vb" autoeventwireup="true" %>
<%@ import namespace="system.diagnostics" %>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<script language="vb" runat="server">
sub writeevent_click(src as object..computerdownloadfilesrticle, e as eventargs)
dim ev as new eventlog("application")
' event's source name
ev.source = "test"
ev.writeentry(textbox1.text)
catch b as exception
response.write ("writeentry " & b.message & "<br>")
end try
ev = nothing
end sub
</script>
<form id="form1" runat="server">
event message:
<asp:textbox id="textbox1" runat="server" width="233px"></asp:textbox>
<asp:button id="button1" onclick="writeevent_click" runat="server" name="button1" text="write to event log"></asp:button>
</form>
</body>
</html>
<%@ page language="c#" autoeventwireup="true" %>
<%@ import namespace="system.diagnostics" %>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<script language="c#" runat="server">
void writeevent_click(object src..computerdownloadfilesrticle, eventargs e)
{
eventlog ev = new eventlog("application");
// event's source name
ev.source = "test";
{
ev.writeentry(textbox1.text);
}
catch (exception b)
{
response.write("writeentry " + b.message + "<br>");
}
ev = null;
}
</script>
<form id="form1" runat="server">
event message:
<asp:textbox id="textbox1" runat="server" width="233px"></asp:textbox>
<asp:button id="button1" onclick="writeevent_click" runat="server" name="button1" text="write to event log"></asp:button>
</form>
</body>
</html>
eventlog.createeventsource(ev.source..computerdownloadfilesrticle, "application");
Tag: 事件日志
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。