知识大全 如何用在ASP.NET中写入事件日志
Posted 事件
篇首语:劳动教养了身体,学习教养了心灵。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 如何用在ASP.NET中写入事件日志相关的知识,希望对你有一定的参考价值。
如何用在ASP.NET中写入事件日志 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
本文包含有关编辑注册表的信息 编辑注册表之前 务必先了解在发生问题时如何还原注册表 有关如何还原注册表的信息 请查看 Regedit exe 中的 还原注册表 帮助主题 或 Regedt exe 中的 还原注册表项 帮助主题
现象
当你使用asp net 向事件日志中写入一个新的 事件来源 时 可能会得到如下错误消息 System Security SecurityException: 不允许所请求的注册表访问权
原因
运行asp net进程的默认怅户是ASPNET(在IIS 下面是NeorkService) 而此用户并没有权限来创建 事件来源
解决办法
注意 (编辑注册表会导致系统崩溃之类的微软吓你的话就不多说) 如果你需要解决此问题 在你运行此Asp net程序之前 则必须要由具有管理员权限的用户来创建一个 事件来源 下面有几个方法用来创建 事件来源
第一个方法
使用下列步骤在注册表编辑中在 应用程序日志 下面创建一个 事件来源
. 点击 开始 再点击 运行
. 在 打开 框中输入 regedit
. 找到下列子键
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Eventlog\\Application
. 右击 Application 点击 新建 再点 项
. 将此新建项重命名为 Test
. 关闭注册表编辑器 第二个方法
在System Diagnostics命名空间中有一个EventLogInstaller类 它能够创建和配置你的应用程序在运时要读写的事件日志 通过下列步骤 我们能够使用EventLogInstaller类来创建一个 事件业源
. 用VB NET或C#来创建一个名为EventLogSourceInstaller的 类库
. 在项目中添加对System Configuration Install dll 的引用
. 将自动产生的Class Vb\\Class cs更命名为MyEventLogInstaller vb\\MyEventLogInstaller cs
. 在MyEventLogInstaller vb 或 MyEventLogInstaller cs中的内容替换为以下代码
Visual Basic NET Sample
Imports System DiagnosticsImports System Configuration InstallImports System ComponentModel
<RunInstaller(True)> _Public Class MyEventLogInstallerInherits InstallerPrivate myEventLogInstaller As EventLogInstaller
Public Sub New() Create an instance of EventLogInstaller myEventLogInstaller = New EventLogInstaller() Set the Source of the event log to be created myEventLogInstaller Source = TEST Set the Log that the source is created in myEventLogInstaller Log = Application Add myEventLogInstaller to InstallerCollection Installers Add(myEventLogInstaller)End Sub End Class
Visual C# NET Sampleusing System;using System Diagnostics;using System ComponentModel;using System Configuration Install;
namespace EventLogSourceInstaller [RunInstaller(true)]public class MyEventLogInstaller : Installerprivate EventLogInstaller myEventLogInstaller;
public MyEventLogInstaller()//Create Instance of EventLogInstallermyEventLogInstaller = new EventLogInstaller();
// Set the Source of Event Log to be created myEventLogInstaller Source = TEST ;
// Set the Log that source is created inmyEventLogInstaller Log = Application ;
// Add myEventLogInstaller to the Installers Collection Installers Add(myEventLogInstaller);
. 生成此项目 得到EventLogSourceInstaller dll
. 打开Visual Studio NET 命令提示 转到EventLogSourceInstaller dll所在目录
. 运行此命令来创建 事件来源 InstallUtil EventLogSourceInstaller dll
更详尽的信息
我们通过一个创建一个Web Application来重现以上错误以及解决此问题
. 使用VB Net或C#建立一个Asp net Web Application
. 在WebForm aspx中的代码替换为以下代码
Visual Basic NET Sample
<%@ Page Language= vb AutoEventWireup= true %><%@ Import namespace= System Diagnostics %><!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN ><HTML><script language= VB runat= server >Sub WriteEvent_Click(Src As Object e As EventArgs)Dim ev As New EventLog( Application ) Event s Source nameev Source = TEST
EventLog CreateEventSource(ev Source Application )
Tryev WriteEntry(TextBox Text)Catch b as exceptionResponse write ( WriteEntry & b message & <br> )End Tryev = NothingEnd Sub</script>
<body><form id= Form runat= server >Event message: <asp:textbox id= TextBox runat= server Width= px ></asp:textbox><asp:button id= Button onclick= WriteEvent_Click runat= server NAME= Button text= Write to event log ></asp:button></form></body></HTML>
Visual C# NET Sample<%@ Page Language= c# AutoEventWireup= true %><%@ Import namespace= System Diagnostics %><!DOCTYPE HTML PUBLIC //W C//DTD HTML Transitional//EN ><HTML><script language= C# runat= server >void WriteEvent_Click(Object Src EventArgs e)EventLog ev = new EventLog( Application );// Event s Source nameev Source = TEST ;
EventLog CreateEventSource(ev Source Application );
tryev WriteEntry(TextBox Text);catch (Exception b)Response Write( WriteEntry + b Message + <br> );ev = null;</script>
<body><form id= Form runat= server >Event message: <asp:textbox id= TextBox runat= server Width= px ></asp:textbox><asp:button id= Button onclick= WriteEvent_Click runat= server NAME= Button text= Write to event log ></asp:button></form></body></HTML>
. 按F 启动此项目
. 在TextBox输入一些字符 然后点击Write to Event Log
. 在上面 现象 部分中提到的错误消息会出现
. 要解决此问题 在Webform aspx将下面这行代码注释
EventLog CreateEventSource(ev Source Application );
cha138/Article/program/net/201311/15435相关参考
ASP.NET创建文件并写入内容 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在ASPNET中
ASP.NET入门教程8.1写入数据的简介 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
知识大全 ASP.NET入门教程 8.1.1 写入数据的控件选择
ASP.NET入门教程8.1.1写入数据的控件选择 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
[ASP.NET开发系列]在用户控件中添加事件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在
ASP.NET中Cookie编程简明参考 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一写入C
深层次来说这不是ASPNET的问题而是form的submit按钮就是如何设计的 当你的光标焦点进入某个表单元素的时候会激活该表单中第一个(流布局顺从左到右从上至下)type=submit的按钮(
深层次来说这不是ASPNET的问题而是form的submit按钮就是如何设计的 当你的光标焦点进入某个表单元素的时候会激活该表单中第一个(流布局顺从左到右从上至下)type=submit的按钮(
ASP.NET中的事件处理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一ASPNET中的事件
ASP.NET学习笔记之事件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一事件的运行原理&n
ASP.NET页面事件执行顺序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! usingSyst