CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

c#自编写的window服务的问题,搞了四个小时没搞定:用installutilexe注册无法运行,而在IDE环境中运行时虽然报"无法从命令行或调试器启动服

楼主JavaDianNet(如何做...如何做的更好...)2006-05-04 11:14:24 在 .NET技术 / C# 提问

c#自编写的window服务的问题,搞了四个小时没搞定:用installutilexe注册无法运行,而在IDE环境中运行时虽然报"无法从命令行或调试器启动服务",但后台服务可以执行...  
   
  代码很简单:  
   
  做的一个定时器,定时执行下列代码:  
   
   
  try  
  {  
  SqlConnection   conn   =   new   SqlConnection("server=clx;database=dbpstest;uid=sa;pwd=''");  
  conn.Open();  
  SqlCommand   cmd   =   new   SqlCommand("insert   into   stu3   values(1)"   ,   conn);  
  cmd.ExecuteNonQuery()   ;  
  conn.Close();  
  }  
  catch(System.Exception   ex)  
  {  
  EventLog   el   =   new   EventLog("Application");  
  el.Source   =   ".NET   I/F";  
  el.EnableRaisingEvents   =   true;  
  el.WriteEntry(ex.Message,   EventLogEntryType.Error);  
  } 问题点数:20、回复次数:19Top

1 楼Knight94(愚翁)回复于 2006-05-04 11:23:29 得分 10

to   而在IDE环境中运行时虽然报"无法从命令行或调试器启动服务",但后台服务可以执行...  
   
  这是肯定的,不能在IDE环境中进行调试。Top

2 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 11:26:31 得分 0

to   Knight94(愚翁):  
  我的问题太奇怪了..虽然道理是这样,可事实是:  
   
  我的后台服务通过IDE点"执行",只要弹出的对话框"无法从命令行或调试器启动服务"不关闭,我可以往数据库插数据...  
  但通过注册形式,却插不了数据...好郁闷!!!!Top

3 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 11:27:17 得分 0

我在想是不是权限问题...我设置的是localsystem...在"服务"中将它改成administrator也不行....Top

4 楼Knight94(愚翁)回复于 2006-05-04 11:45:34 得分 0

vs2003   or   vs2005?Top

5 楼Knight94(愚翁)回复于 2006-05-04 11:45:59 得分 0

你的程序单独写到winform中运行是否有问题Top

6 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 11:46:33 得分 0

vs2003  
   
  winform中可以执行!Top

7 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 11:47:14 得分 0

会不会是需要什么服务的支持,已经被我禁止了....Top

8 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 12:10:09 得分 0

代码写在onstart中可执行,  
   
  问题在于定时器不起作用!!!!!!Top

9 楼Knight94(愚翁)回复于 2006-05-04 12:12:25 得分 0

用Thread来替换Timer。Top

10 楼Knight94(愚翁)回复于 2006-05-04 12:13:24 得分 0

我不建议在Windows   Service中使用Timer。Top

11 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 12:14:05 得分 0

我晕,想问为什么timer不起作用,我是将enable设为true...  
   
  c#中的thread还没用过,找找资料...Top

12 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 12:14:30 得分 0

我不建议在Windows   Service中使用Timer。  
   
  为什么???Top

13 楼Knight94(愚翁)回复于 2006-05-04 12:33:47 得分 0

timer响应是由事件驱动的,因此在Windows   Service中会出现或多或少的问题。  
   
  to   c#中的thread还没用过,找找资料.  
  参看  
  http://blog.csdn.net/knight94/archive/2006/03/17/627298.aspxTop

14 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 12:37:50 得分 0

问题已经解决,用多线程,刚好刚才找的也是你的文档,多谢Knight94(愚翁)!!!!  
   
  protected   override   void   OnStart(string[]   args)  
  {  
  //   TODO:   在此处添加代码以启动服务。  
  //this.timer1.Enabled   =   true;  
  /*  
  timer1.Enabled   =   true;  
  timer1.Enabled   =   false;  
  timer1.Stop();  
  timer1.Start();  
  */  
   
   
  Thread   t1   =   new   Thread(new   ThreadStart(ThreadFun));  
  t1.Start();  
  }  
     
  private   void   ThreadFun()  
   
  {  
   
  //Create   invoke   method   by   specific   function  
   
  while(true)  
  {  
  Thread.Sleep(6000);  
  SqlConnection   conn   =   new   SqlConnection("server=clx;database=dbpstest;uid=sa;pwd=''");  
  conn.Open();  
  SqlCommand   cmd   =   new   SqlCommand("insert   into   stu4   values(1)"   ,   conn);  
  cmd.ExecuteNonQuery()   ;  
  }  
   
  }Top

15 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 12:38:44 得分 0

代码还需要改进呵,连接放在onstart中,关闭连接与停止线程放在onclose中,Top

16 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 12:42:56 得分 0

最后一个问题uninstall时需要服务的exe文件,假设exe文件丢失,只知道服务名如何uninstall它?Top

17 楼Knight94(愚翁)回复于 2006-05-04 12:49:54 得分 0

to   最后一个问题uninstall时需要服务的exe文件,假设exe文件丢失,只知道服务名如何uninstall它?  
   
  好像不行,必须有exe文件。Top

18 楼JavaDianNet(如何做...如何做的更好...)回复于 2006-05-04 12:51:11 得分 0

收到,谢谢!~Top

19 楼cat_hsfz(我的新Blog在http://cathsfz.cnblogs.com)回复于 2006-05-05 23:22:13 得分 10

首先,确认你用了正确的Timer。整个.NET有3个Timer可用:  
  System.Threading.Timer  
  System.Timers.Timer  
  System.Windows.Forms.Timer  
   
  最后一个不能用于Windows   Service。Top

相关问题

关键词

得分解答快速导航

  • 帖主:JavaDianNet
  • Knight94
  • cat_hsfz

相关链接

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

广告也精彩

反馈

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