Q:我用DELPHI编写了一个NT的服务,且设置为自动启动,可每次服务器重启后,该服务不能自动启动。我感觉是由于该服务启动时使用了sqlserver数据库,可能由于sqlserver服务没有启动完成,导致该服务无法启动,所以我想指定该服务的依存关系,让它在sqlserver服务启动完毕后再启动,如何做?
A:
方法一、
procedure TFooParserService.ServiceBeforeInstall(Sender: TService);
begin
{$ifdef BINDING_MSSQLSERVER}
Self.Dependencies.Add;
Self.Dependencies.Items[0].Name := 'MSSQLSERVER';
{$endif}
end;
方法二、
在service的create事件中添加
TDependency(Dependencies.add).name:='MSSQLSERVER';
Q:如何调试?
A:
调试是可以的:
最简单的就是先作成程序,调试没有问题了再转成服务。 当然如果你不想这样的话当然也可以,方法如下:
首先,在"Run|Parameters..."窗口“Parameters”中使用参数/Install运行服务程序,此时服务安装到系统中,然后用服务管理器启动安装的服务,回到Delphi中,到菜单Run-->Attach Process中,Attach到服务的Exe程序即可,如果找不到这个Exe,选择下面的“Show System Processes”。此时可以正常下断点等。
需要注意的是:
1.Attach会跳出一个错误的窗口,不要管它,关闭后直接F4即可。
2.如果不调试后,要把/Install换成/UnInstall,卸载服务,然后把Parameters参数清空。反正只要提示大概意思是“服务已经存在”或者“服务不存在”,就要看Parameters的参数值。
3.再次调试/Install的时候,要把刚刚打开的服务管理器窗口关闭,不然会提示大概意思是“服务已经被禁止”。
用DELPHI编写NT服务时,如何指定依存关系?
转载
谢祥选【小宇飞刀(xieyunc)】
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
上一篇:soapUI快速入门
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Python读取NC文件指定经度、纬度与时相的数据
本文介绍基于Python语言的netCDF4库,读取.nc格式的数据文件,并提取指定维(时间、经度与纬度)下的变量数据的方法~
Python NC数据 数据提取 栅格文件 .nc格式文件