Windows服务的问题

.Net技术 码拜 9年前 (2015-05-10) 710次浏览 0个评论
 

我写了一个服务程序,安装没问题,启动的时候显示:“错误1053: 服务没有及时响应启动或控制请求”

此时服务已经开始正常运行,但服务仍处于“正在启动”的状态,没法停止或者暂停,重启系统也是这样

一直没搞明白是什么问题,还请高手解答,谢谢

100分
启动动作应该在几毫秒只能完成,不要太慢(至少在服务器环境最不好的情况下也要保证在20秒内启动完毕)。

要在几毫秒启动,那么你的启动里边尽量不做什么工作,只要启动一个 timer 定时器就行了。

明白了,因为第一次写服务,很多概念都不太清楚,多谢指教

引用 1 楼 sp1234 的回复:

启动动作应该在几毫秒只能完成,不要太慢(至少在服务器环境最不好的情况下也要保证在20秒内启动完毕)。

要在几毫秒启动,那么你的启动里边尽量不做什么工作,只要启动一个 timer 定时器就行了。

有的时候,你的服务的代码可能自定义部分比较多,很难说还有什么代码影响到了服务的启动。这时侯,其实就可以取消掉你的服务程序,而把它变为一个console程序(一个控制台程序,只不过开始之后进入一个Pending提示,然后等待用户按Ctrl+C键才退出console程序)。

然后你可以写一个只有是几行代码的服务程序——这叫做守护程序。它可以每隔几秒钟就查看一下内存中是否有需要守护的进程,如果没有就自动启动一个。(“进程名、进程启动路径”可以写到一个配置文件中随时修改提交)。

这个守护程序非常简单,而且一旦写了以后就用不需要修改了。而你以后就只需要开发控制台程序、然后修改一下守护程序的配置文件就行了,即使开发新的程序也不会再遇到类似的问题。

太感谢了,愁了大半天,一下豁然开朗了

引用 3 楼 sp1234 的回复:

有的时候,你的服务的代码可能自定义部分比较多,很难说还有什么代码影响到了服务的启动。这时侯,其实就可以取消掉你的服务程序,而把它变为一个console程序(一个控制台程序,只不过开始之后进入一个Pending提示,然后等待用户按Ctrl+C键才退出console程序)。

然后你可以写一个只有是几行代码的服务程序——这叫做守护程序。它可以每隔几秒钟就查看一下内存中是否有需要守护的进程,如果没有就自动启动一个。(“进程名、进程启动路径”可以写到一个配置文件中随时修改提交)。

这个守护程序非常简单,而且一旦写了以后就用不需要修改了。而你以后就只需要开发控制台程序、然后修改一下守护程序的配置文件就行了,即使开发新的程序也不会再遇到类似的问题。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Windows服务的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!