+ -
当前位置:首页 → 问答吧 → asp.net 中timer控件的问题

asp.net 中timer控件的问题

时间:2010-11-06

来源:互联网

我安装了中文版的vs2005,怎么没有timer控件?
我从专业网站上下载了ajax,这里有timer控件。安装完毕,在asp.net的网站页面上,放一个timer控件。
运行时提示::
The control with ID 'Timer1' requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it.
 放一个ScriptManager,这个错误没有出现了。
问题1:中文版的vs2005为什么没有timer控件?
问题2:ScriptManager是什么东西?为什么要使用ScriptManager,timer控件才能使用呢?

作者: haowenyao   发布时间: 2010-11-06

VS2005开发中Timer控件失效的解决方法

Timer控件失效的解决

  在Windows 服务不引发计时器事件

  原因:

  我认为windows服务里不能使用System.Windows.Forms的Timer控件,Windows.Forms 计时器组件用于 Windows.Forms 环境。WindowsForms 计时器组件不用于服务器环境,所以要使用System.Timer下的控件。

  解决方案

  这个可以通过修改控件的类型,把所有使用服务器计时器从命名空间 System.Timers 代替 System.Windows.Forms 计时器。如:

以下是引用片段:
Service1.Designer.cs 
  1namespace MyNewService 
  2{ 
  3 partial class MyNewService 
  4 { 
  5 /**////  
  6 /// 必需的设计器变量。 
  7 ///  
  8 private System.ComponentModel.IContainer components = null; 
  9 
  10 /**////  
  11 /// 清理所有正在使用的资源。 
  12 ///  
  13 /// 如果应释放托管资源,为 true;否则为 false。 
  14 protected override void Dispose(bool disposing) 
  15 { 
  16 if (disposing && (components != null)) 
  17 { 
  18 components.Dispose(); 
  19 } 
  20 base.Dispose(disposing); 
  21 } 
  22 
  23 组件设计器生成的代码#region 组件设计器生成的代码 
  24 
  25 /**////  
  26 /// 设计器支持所需的方法 - 不要 
  27 /// 使用代码编辑器修改此方法的内容。 
  28 ///  
  29 private void InitializeComponent() 
  30 { 
  31 this.eventLog1 = new System.Diagnostics.EventLog(); 
  32 this.timer1 = new System.Timers.Timer(); 
  33 ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).BeginInit(); 
  34 ((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit(); 
  35 // 
  36 // timer1 
  37 // 
  38 this.timer1.Interval = 2000; 
  39 this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_Elapsed); 
  40 // 
  41 // MyNewService 
  42 // 
  43 this.CanPauseAndContinue = true; 
  44 this.CanShutdown = true; 
  45 this.ServiceName = "MyNewService"; 
  46 ((System.ComponentModel.ISupportInitialize)(this.eventLog1)).EndInit(); 
  47 ((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit(); 
  48 
  49 } 
  50 
  51 #endregion 
  52 
  53 private System.Diagnostics.EventLog eventLog1; 
  54 private System.Timers.Timer timer1; 
  55 
  56 } 
  57}Service1.cs: 
  1using System; 
  2using System.Collections.Generic; 
  3using System.ComponentModel; 
  4using System.Data; 
  5using System.Diagnostics; 
  6using System.ServiceProcess; 
  7using System.Text; 
  8 
  9namespace MyNewService 
  10{ 
  11 public partial class MyNewService : ServiceBase 
  12 { 
  13 public MyNewService() 
  14 { 
  15 InitializeComponent(); 
  16 if (!System.Diagnostics.EventLog.SourceExists("MySource")) 
  17 { 
  18 System.Diagnostics.EventLog.CreateEventSource( 
  19 "MySource", "MyNewLog"); 
  20 } 
  21 eventLog1.Source = "MySource"; 
  22 eventLog1.Log = "MyNewLog"; 
  23 } 
  24 
  25 protected override void OnStart(string[] args) 
  26 { 
  27 eventLog1.WriteEntry("In OnStart"); 
  28 this.timer1.Enabled = true; 
  29 
  30 
  31 } 
  32 
  33 protected override void OnStop() 
  34 { 
  35 eventLog1.WriteEntry("In onStop."); 
  36 this.timer1.Enabled = false; 
  37 } 
  38 
  39 protected override void OnContinue() 
  40 { 
  41 eventLog1.WriteEntry("In OnContinue."); 
  42 } 
  43 
  44 
  45 
  46 private void timer1_Elapsed(object sender, System.Timers.ElapsedEventArgs e) 
  47 { 
  48 eventLog1.WriteEntry("timer1_Tick." + DateTime.Now.ToString()); 
  49 } 
  50 
  51 
  52 } 
  53} 

作者: EduKit   发布时间: 2010-11-06

作者: EduKit   发布时间: 2010-11-06

热门下载

更多