ASP.Net默认情况下,是没有写系统日志的权限的。要在ASP.Net中写系统日志,首先我们要先有其权限。我们可以通过设置或修改注册表的权限来解决。
方法1:“开始->运行”,输入命令,“regedt32”,找到“System->CurrentControlSet->Services->Eventlog”,选择“安全->权限->添加”,然后找到本机的“AspNet”用户,加进来并且给读取权限就好了,加进来后目录中会多一个“aspnet_wp account”
方法2:在注册表:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Service/EventLog增加User的完全操纵权限
测试代码如下:
using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlControls;using System.Diagnostics;
namespace testEventLog{ /// <summary> /// Summary description for Index. /// </summary> public class Index : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { // Put user code to initialize the page here EntrytoLog(); } void EntrytoLog() { int[] array = new int[9]; try { for(int i = 0; i <= 9; i++) { array[i] = i; Response.Write("The value of the i is :" + i + "<br>"); } } catch (Exception ex) { Index.Log("Town", ex.ToString()); }
} public static void Log(string sourceName, string message)
{ EventLog eventLog = null;
// 确定日志是否存在 if (!(EventLog.SourceExists(sourceName))) { EventLog.CreateEventSource(sourceName, sourceName + "Log"); } if (eventLog == null) { eventLog = new EventLog(sourceName + "Log");
eventLog.Source = sourceName; }
// 记录日志信息 eventLog.WriteEntry(message, System.Diagnostics.EventLogEntryType.Error);
}
#region Web Form Designer generated code override protected void OnInit(EventArgs e) { // // CODEGEN: This call is required by the ASP.NET Web Form Designer. // InitializeComponent(); base.OnInit(e); } /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load);
} #endregion }}