方法一
using System;
using System
using System
using System
using System
using System
using System
using System
using System
using System
using System
using System
namespace
{
public class Global : System
{
protected void Application_Start(object sender
{
//定義定時器
System
myTimer
myTimer
myTimer
}
void myTimer_Elapsed(object source
{
try
{
Log
YourTask();
}
catch (Exception ee)
{
Log
}
}
void YourTask()
{
//在這裡寫你需要執行的任務
}
protected void Application_End(object sender
{
Log
//下面的代碼是關鍵
Thread
//這裡設置你的web地址
string url =
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest
Stream receiveStream = myHttpWebResponse
}
}
}
原理
================================================================
從日志中發現
如果將Application_End中的代碼注釋掉
================================================================
局限性
方案二
<%@ Application Language=
<%@ import Namespace=
<script runat=
void Application_Start(object sender
{
// 在應用程序啟動時運行的代碼
System
myTimer
myTimer
myTimer
}
void Application_End(object sender
{
// 在應用程序關閉時運行的代碼
}
void Application_Error(object sender
{
// 在出現未處理的錯誤時運行的代碼
}
void Session_Start(object sender
{
// 在新會話啟動時運行的代碼
}
void Session_End(object sender
{
// 在會話結束時運行的代碼
// 注意: 只有在 nfig 文件中的 sessionstate 模式設置為
// InProc 時
// 或 SQLServer
}
private static void OnTimedEvent(object source
{
//間隔時間執行某動作
//指定日志文件的目錄
string fileLogPath = AppDomain
string fileLogName =
//定義文件信息對象
FileInfo finfo = new FileInfo(fileLogPath + fileLogName);
//創建只寫文件流
using (FileStream fs = finfo
{
//根據上面創建的文件流創建寫數據流
StreamWriter strwriter = new StreamWriter(fs);
//設置寫數據流的起始位置為文件流的末尾
strwriter
//寫入錯誤發生時間
strwriter
//寫入日志內容並換行
//strwriter
strwriter
//寫入間隔符
strwriter
strwriter
//清空緩沖區內容
strwriter
//關閉寫數據流
strwriter
fs
}
}
</script>
方案三
<%@ Application Language=
<%@ Import Namespace=
<%@ Import Namespace=
<script RunAt=
string LogPath;
Thread thread;
void WriteLog()
{
while (true)
{
StreamWriter sw = new StreamWriter(LogPath
sw
sw
Thread
}
}
void Application_Start(object sender
{
LogPath = HttpContext
thread = new Thread(new ThreadStart(WriteLog));
thread
thread
}
void Application_End(object sender
{
// 在應用程序關閉時運行的代碼
}
void Application_Error(object sender
{
// 在出現未處理的錯誤時運行的代碼
}
void Session_Start(object sender
{
// 在新會話啟動時運行的代碼
}
void Session_End(object sender
{
// 在會話結束時運行的代碼
// 注意: 只有在 nfig 文件中的 sessionstate 模式設置為
// InProc 時
// 或 SQLServer
}
</script>
From:http://tw.wingwit.com/Article/program/net/201311/13724.html