CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

求救:定时发送问题?

楼主zhangweiguo3984(维维)2005-08-04 19:03:57 在 .NET技术 / ASP.NET 提问

我在做一个短信平台,定时发送现在出现大问题了,老是发送两条或更多,不知道为什么,代码如下:  
  public   void   Timesend()  
  {  
  int   sendtype=1;  
  string     time   =DateTime.Now.ToLongTimeString();  
  string   year=DateTime.Today.Year.ToString();  
  string   month=DateTime.Today.Month.ToString();  
  string   day=DateTime.Today.Day.ToString();  
  string   datetime=year+"-"+month+"-"+day+"   "+time;  
  DataSet   ds   =MyBMS.Access.Users.Outmsg(datetime);  
  int   count=ds.Tables.Count;  
  if(count==0)  
  {  
  //时间点没有需要发送的信息  
  }  
  else  
  {  
  string   status="";    
  for(int   i=0;i<count;i++)//循环发送信息  
  {  
  string   outid=ds.Tables[0].Rows[i][0].ToString();  
  string   msgcontent=Server.UrlEncode(ds.Tables[0].Rows[i][3].ToString());//循环获取140个字符,70个汉字  
  string   Msgcontent=ds.Tables[0].Rows[i][3].ToString();//取信息内容  
  string   mobile=ds.Tables[0].Rows[i][2].ToString();//取手机号码  
  string   CmpyAccount   =ds.Tables[0].Rows[i][1].ToString();//获取数据库里UserID  
  string   SubloginName=ds.Tables[0].Rows[i][6].ToString();//帐号登陆名  
  string   SpNumber=MyBMS.Access.Users.SelectSpNumber(CmpyAccount);//获取特服号  
  string   link=MyBMS.Access.Users.Sendlink(SpNumber,mobile,msgcontent);//连接接口  
  ds.Tables[0].Rows[i].Delete();  
  RegisterStartupScript("key","<script   language=jscript>window.open(link)</script>");//调用接口  
  status   =   MyBMS.Access.Users.Get_Http(link,10000);//读取返回状态  
  int   flag;  
  try  
  {  
  flag=   Convert.ToInt32(status.Substring(0,1));//截取返回值的第一字符   0表示成功   1表示失败  
  }  
  catch  
  {  
  flag=1;  
  }  
  if(flag==0)//发送成功  
  {  
  MyBMS.Access.Users   Msg=new   Users();//对象事例花  
  Msg.InsertSendMsg(CmpyAccount,SpNumber,mobile,Msgcontent,sendtype,flag,SubloginName);//插入成功记录  
  Msg.deleteoutmsg(outid);//删除OutMsgBox里的这条记录  
  }  
  else  
  {  
  flag=1;//发送失败  
  MyBMS.Access.Users   Msg=new   Users();  
  Msg.InsertSendMsg(CmpyAccount,SpNumber,mobile,Msgcontent,sendtype,flag,SubloginName);//插入失败记录  
  Msg.updatemsgCountadd(CmpyAccount);//发送失败   给用户可用余额增加1  
  Msg.deleteoutmsg(outid);//删除OutMsgBox里的这条记录  
  }  
  }  
   
  }  
   
  }  
   
  #region   Web   窗体设计器生成的代码  
  override   protected   void   OnInit(EventArgs   e)  
  {  
  //  
  //   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。  
  //  
  InitializeComponent();  
  base.OnInit(e);  
  }  
   
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {          
  this.timer1   =   new   System.Timers.Timer();  
  ((System.ComponentModel.ISupportInitialize)(this.timer1)).BeginInit();  
  //    
  //   timer1  
  //    
  this.timer1.Enabled   =   true;  
  this.timer1.Interval   =   1000;  
  this.timer1.Elapsed   +=   new   System.Timers.ElapsedEventHandler(this.timer1_Elapsed);  
  this.Load   +=   new   System.EventHandler(this.Page_Load);  
  ((System.ComponentModel.ISupportInitialize)(this.timer1)).EndInit();  
   
  }  
  #endregion  
   
  private   void   timer1_Elapsed(object   sender,   System.Timers.ElapsedEventArgs   e)  
  {  
  this.Timesend();  
  }  
   
  各位前辈们,如果有相关的实例或代码能否给小弟参考一下。 问题点数:100、回复次数:12Top

1 楼lovelxj(伊斯人,吾谁与归)回复于 2005-08-04 19:12:25 得分 5

就发送一条看看会不会出现问题     如果是   那就是短信发送网关问题了Top

2 楼zhangweiguo3984(维维)回复于 2005-08-04 19:27:03 得分 0

如果是正常的立即发送是没有问题的,如果定时发送的话,就会出现我刚说的问题,应该是我的程序问题,各路高手帮忙啊Top

3 楼adandelion(水源是CSDN最黑的地方,但这个最黑是CSDN一手制造的!)回复于 2005-08-04 21:05:31 得分 0

GZTop

4 楼cat_hsfz(我的新Blog在http://cathsfz.cnblogs.com)回复于 2005-08-04 22:34:44 得分 5

是不是你的页面开了AutoEventWireUp,所以timer1_Elapsed被显式和隐式各调用了一遍?Top

5 楼zhangweiguo3984(维维)回复于 2005-08-05 08:40:03 得分 0

AutoEventWireUp   没有开啊   可是为什么总是执行两次   或是更多呢?哪位大峡有定时发送的实例啊,发个给小弟吧Top

6 楼huangguolinc(来了)回复于 2005-08-05 08:53:04 得分 5

记号Top

7 楼cat_hsfz(我的新Blog在http://cathsfz.cnblogs.com)回复于 2005-08-05 14:14:44 得分 20

你是不是应该在timer1_Elapsed()里面把timer1的Enable设置为false?Top

8 楼zhangweiguo3984(维维)回复于 2005-08-06 08:17:24 得分 0

cat_hsfz()     设置都是对的呀     有人说这个是.net的一个BUG,你们没有出现过这样的情况吗?哪位大侠做过定时发送啊,给个思路啊?Top

9 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2005-08-06 08:41:46 得分 5

这和Bug没关系......自己不会游泳不能怪父母没给你生对鱼鳃.....  
   
  为什么我群发的时候没出过?Top

10 楼zhangweiguo3984(维维)回复于 2005-08-06 10:26:22 得分 0

syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧)   我到不是群发有问题     就是定时发送的时候会出现这样的情况,总是一条同样的信息发送两次或是更多,你们是怎么实现的呀?如果哪位大侠有定时发送的实例,能否给我参考,我QQ:55239680   谢谢!Top

11 楼luojianfeng(原来我不傻!)回复于 2005-08-08 09:24:31 得分 0

顶Top

12 楼libinguest(上善若水)回复于 2005-09-17 14:21:39 得分 60

你在你的Timer控件在载入启动后调用你方法的里面第一行让Time.Stop()  
  在方法执行完后又让Time.Start(),或者你加上try.....catch.....finilly(这里启动也行.)Top

相关问题

  • 如何用javamail定时发送邮件?
  • pb怎样定时发送文件到ftp server?
  • 如何用JMAIL实现定时发送邮件?
  • 如何用mscomm定时向外发送数据?
  • 如何实现信息的定时发送
  • 问一个关于定时发送的问题
  • 如何编程实现定时发送邮件
  • 快来看,快来看!一个关于短信定时发送的问题!
  • 如何得到一个窗体的句柄,并定时向它发送消息?
  • 100分求:ASP.NET定时发送信息实例!(Time控件的高级用法)

关键词

  • 代码
  • access
  • timer
  • mybms
  • 发送
  • cmpyaccount
  • sendtype
  • 调用
  • elapsed
  • 问题

得分解答快速导航

  • 帖主:zhangweiguo3984
  • lovelxj
  • cat_hsfz
  • huangguolinc
  • cat_hsfz
  • syeerzy
  • libinguest

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo