最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ASP.NET 计划任务实现方法(不使用外接程序,.net内部机制实现)

来源:动视网 责编:小采 时间:2020-11-27 22:42:48
文档

ASP.NET 计划任务实现方法(不使用外接程序,.net内部机制实现)

ASP.NET 计划任务实现方法(不使用外接程序.net内部机制实现):以下讲解步骤: 1. 在Global.asax 文件中作如下修改 代码如下:void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 //定义定时器 //1000表示1秒的意思 System.Timers.Timer myTimer =
推荐度:
导读ASP.NET 计划任务实现方法(不使用外接程序.net内部机制实现):以下讲解步骤: 1. 在Global.asax 文件中作如下修改 代码如下:void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 //定义定时器 //1000表示1秒的意思 System.Timers.Timer myTimer =


以下讲解步骤:
1. 在Global.asax 文件中作如下修改
代码如下:

void Application_Start(object sender, EventArgs e)
{
// 在应用程序启动时运行的代码
//定义定时器
//1000表示1秒的意思
System.Timers.Timer myTimer = new System.Timers.Timer(1000);
//TaskAction.SetContent 表示要调用的方法
myTimer.Elapsed += new System.Timers.ElapsedEventHandler(TaskAction.SetContent);
myTimer.Enabled = true;
myTimer.AutoReset = true;
}

Application_Start 只有在访问一次之后才会触发.
代码如下:

void Session_End(object sender, EventArgs e)
{
//下面的代码是关键,可解决IIS应用程序池自动回收的问题
System.Threading.Thread.Sleep(1000);
//触发事件, 写入提示信息
TaskAction.SetContent();
//这里设置你的web地址,可以随便指向你的任意一个aspx页面甚至不存在的页面,目的是要激发Application_Start
//使用您自己的URL
string url = "http://henw.cnblog.com";
System.Net.HttpWebRequest myHttpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
System.Net.HttpWebResponse myHttpWebResponse = (System.Net.HttpWebResponse)myHttpWebRequest.GetResponse();
System.IO.Stream receiveStream = myHttpWebResponse.GetResponseStream();//得到回写的字节流
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 InProc 时,才会引发 Session_End 事件。
// 如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
}

Session_End 中的方法主要是解决IIS应用程序池自动回收的问题.
2. 添加计划任务类 TaskAction
代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Timers;
/// <summary>
///Action 的摘要说明
/// </summary>
public static class TaskAction
{
private static string content = "";
/// <summary>
///
输出信息存储的地方.
/// </summary>
public static string Content
{
get { return TaskAction.content; }
set { TaskAction.content += "<div>" + value+"</div>"; }
}
/// <summary>
/// 定时器委托任务 调用的方法
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
public static void SetContent(object source, ElapsedEventArgs e)
{
Content = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
/// <summary>
/// 应用池回收的时候调用的方法
/// </summary>
public static void SetContent()
{
Content = "END: " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
}

3. 执行结果输出[Default.aspx] (此步仅仅为了观看结果才写的页面)
在Default.aspx页面 添加
代码如下:

<div>
<%=TaskAction.Content %>
</div>

4. 结果

输出

QQ截图20110923145356

欢迎大家一起探讨
示例源代码下载

文档

ASP.NET 计划任务实现方法(不使用外接程序,.net内部机制实现)

ASP.NET 计划任务实现方法(不使用外接程序.net内部机制实现):以下讲解步骤: 1. 在Global.asax 文件中作如下修改 代码如下:void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 //定义定时器 //1000表示1秒的意思 System.Timers.Timer myTimer =
推荐度:
标签: 不使用 程序 net
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top