• 用DELPHI编写NT服务时,如何指定依存关系?


    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的时候,要把刚刚打开的服务管理器窗口关闭,不然会提示大概意思是“服务已经被禁止”。   
        

    谢祥选【小宇飞刀(xieyunc)】
  • 相关阅读:
    laravel 使用DB 鏈接leftJoin查詢
    checkbox复选框,如何让其勾选时触发一个事件,取消勾选时不触发
    js获取上传图片大小,判断上传图片类型,获取图片真实宽度和高度
    如何查看crontab的日志记录
    linux应用之gcc环境的安装
    laravel 获取上一条insert语句产生的id
    laravel多条件查询(and,or嵌套查询)
    laravel ORM 模型关联 with () 用法
    js实现表单提交 onsubmit
    如何利用jquery来给input添加或删除disabled属性
  • 原文地址:https://www.cnblogs.com/xieyunc/p/9126639.html
Copyright © 2020-2023  润新知