首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

发个帖:createservice创造的服务无法启动,有经验的大神指教下

2013-07-04 
发个帖:createservice创建的服务无法启动,有经验的大神指教下需求:一个普通的EXE 添加服务功能 createserv

发个帖:createservice创建的服务无法启动,有经验的大神指教下
需求:一个普通的EXE 添加服务功能 createservice后
别说程序启动,就是在本地服务里手工启动服务也失败,如下
问题错误:无法启动服务 1053服务没有及时响应启动或控制请求
先上代码:


[解决办法]
服务和普通app是有区别的,服务需要注册,服务的Application和普通窗口应用的Application不是同一个对象
下面的例子,如果带有-ui参数,则以非服务启动,否则就是服务程序

program DemoServer;

uses
  SysUtils,
  SvcMgr,
  Forms,
  SvcUIFrm in 'SvcUIFrm.pas',
  DBSvcFrm in 'DBSvcFrm.pas';

begin
  if FindCmdLineSwitch('ui') then
  begin
    Forms.Application.Initialize;
    Forms.Application.MainFormOnTaskbar := True;
    Forms.Application.CreateForm(TSvcUIForm, SvcUIForm);
    Forms.Application.Run;
  end
  else begin
    if not SvcMgr.Application.DelayInitialize or SvcMgr.Application.Installing then


      SvcMgr.Application.Initialize;
    SvcMgr.Application.CreateForm(TDBSvc, DBSvc);
    SvcMgr.Application.Run;
  end;
end.

[解决办法]
服务程序的代码没贴出来这个只是创建服务,你都创建成功了。都可以看到这个服务了。
而服务不能起来是你服务程序本身决定的,检查你RegisterServiceCtrlHandler注册的函数有没有正确处理外部命令?

热点排行