global.asax

来自「C#开发者可使用的经典案例集,源自于ASP.NET经典范例50讲」· ASAX 代码 · 共 61 行

ASAX
61
字号
<%@ Import Namespace="System.Diagnostics" %>
<%@ Import Namespace="System.Configuration" %>
<%@ Import Namespace="System.Web.Mail" %>

<script language="C#" runat="server">
  public void Application_BeginRequest(object sender, EventArgs arg)
  {
    string logName = ConfigurationSettings.AppSettings["EventLogName"];
    string logSource = ConfigurationSettings.AppSettings["EventLogSource"];

    string logMessage = "";
    logMessage += "Remote Client Name: " + Request.UserHostName + "\n";
    logMessage += "Remote Client IP: " + Request.UserHostAddress + "\n";
    logMessage += "Request: " + Request.FilePath;

    if(!(EventLog.SourceExists(logSource)))
    {
      EventLog.CreateEventSource(logSource, logName);
    }

    //Insert request log
    EventLog log = new EventLog();
    log.Source = logSource;
    log.WriteEntry(logMessage, EventLogEntryType.Information);
  }

  public void Application_Error(object sender, EventArgs arg)
  {
    string logName = ConfigurationSettings.AppSettings["EventLogName"];
    string logSource = ConfigurationSettings.AppSettings["EventLogSource"];

    Exception e = Server.GetLastError();
    string logMessage = e.ToString();

    if(!(EventLog.SourceExists(logSource)))
    {
      EventLog.CreateEventSource(logSource, logName);
    }

    //Insert request log
    EventLog log = new EventLog();
    log.Source = logSource;
    log.WriteEntry(logMessage, EventLogEntryType.Error);

    // Send Mail to Administrator of the Web
    MailMessage mail = new MailMessage();
    mail.From    = ConfigurationSettings.AppSettings["ApplicationName"];
    mail.To      = ConfigurationSettings.AppSettings["AdminEmail"];
    mail.Subject = "Application Internal Error.";

    mail.Body  = "Application Internal Error.";
    mail.Body += "Remote Client Name: " + Request.UserHostName + "\n";
    mail.Body += "Remote Client IP: " + Request.UserHostAddress + "\n";
    mail.Body += "Request: " + Request.FilePath;
    mail.Body += "Exception:" + logMessage;

    SmtpMail.SmtpServer = "localhost";
    SmtpMail.Send(mail);
  }
</script>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?