编写 Windows 服务在 Windows 服务程序开发 中有利用 c# 和 vs 的实现方法。下面列举一些在编写 windows 服务程序时遇到的一些问题及解决方法。
错误 1053: 服务没有及时响应启动或控制请求。
分析:如果服务启动函数 OnStart 里面放一个运行时间很长的方法,或者阻塞的方法时,就出现上面那个错误。
另外一个原因可能是缺少了一些服务必需的dll。
解决方法:可以在 onStart() 里另起一个线程,在这个线程里可以 while(true),也可以执行阻塞的方法,在onStop()里面将线程杀掉。
对于第二个原因,双击服务程序文件,找出缺少的 dll 文件,将其拷贝到当前工程目录或者 c:\Windows\system32\ 目录下。
Thread threadforwork;
protected override void OnStart(string[] args)
{
// TODO: Add code here to start your service.
if (threadforwork == null)
{
threadforwork = new Thread(workFunction); //新建一个线程