自己写的service怎么不能stop 和pause啊?(50分)

  • 主题发起人 主题发起人 jlmouse
  • 开始时间 开始时间
J

jlmouse

Unregistered / Unconfirmed
GUEST, unregistred user!
;我new了一个serviceapplication,安装和运行都没有问题,可是这个service却不能暂停和停止,会出这样的错误:
Could not stop the Monitor server on Local Computer
The service did not return an error. This could be an internal
windows error or an internal serviec error. If the problem
persists, contact your system administrator.
( 其中,Monitor是我的服务名称)

我已经处理了service的OnPause和OnStop事件,返回了true给对应的
两个变量(按照help所说的),但是还是不行。


 
Service1.AllowPause和Service1.AllowStop为True吗?
win95/98是不支持Service的.
 
Service1.AllowPause和Service1.AllowStop已经设成True了,是在win2000下运行的
 
看看有什么变量分配了内存没释放的,timer控件没有disable的,
TCP/IP连接还开着的,手工create的对象没有free掉的...

所有的线程必须都停止了,才能stop一个service的。

pause也差不多。

另外,可以将service_status中的dwcheckpoint设的大些试试,
并且不时地增加waithint,以让windows等待关闭而不认为是出错。
 
sorry, 是dwwaithint设大些,并且dwcheckpoint不断增加。
 
顺序将OnExecte, OnPause, OnStop 等一一注掉,看问题在哪?

var Stopped: Boolean;
var Started: Boolean;
不只返回值,还要你付值的!
 
如果是 while not terminate then do
begin
end;
形式,在end 前加入一个过程ServiceThread.ProcessRequests(FALSE);关于这个过程
在帮助中有说明,
如果还不行的话,那就是你做了连续的SHOWMESAGE()等在屏幕上可见的行为,‘//'掉
他就好了^^
 
如果以上的做法都不行的化,最好检查一下service 属性中interactive 一项是否
设置为true,如果你想要在service执行时在屏幕上显示一些信息的话就要设置interactive
为true,以便与windows desktop 通讯,同时servicetype 要设置为stwin32
 
多人接受答案了。
 
后退
顶部