求助!!! 如何把一个使用了 indy9组件IdTCPServer的程序变成一个win2000服务??? ( 积分: 100 )

  • 主题发起人 主题发起人 roardash
  • 开始时间 开始时间
R

roardash

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在正在做一个网络程序.服务器和客户端用到了indy9 组件.
分别是IdTCPServer和IdTCPClient.
服务器端:在IdTCPServer的OnExecute事件句柄中处理了客户端的请求.由于indy组件本身是多线程的,所以这个服务器可以同时处理多个不同的连接请求.
客户端:用IdTCPClient来发起到服务器的连接.
程序做完后,功能正常运行.
现在我想把服务器端做成win2000的服务.
我的做法是
1.New Items对话框中新建一个Service Application.
2.之后delphi自动生成了一个TService的子类TTestService.我把自己做的
包含业务逻辑的IdTCPServer加入该类
type
TTestService = class(TService)
IdTCPListenServer: TIdTCPServer;

end;
3.在TService的OnStart事件句柄中启动IdTCPListenServer
procedure TTestService.ServiceStart(Sender: TService;
var Started: Boolean);
begin
IdTCPListenServer.Active:=true;
end;
编译之后生成一个ServerTest.exe文件.
4.安装该服务.
ServerTest /INSTALL
可以安装成功.
5,然后我在管理工具--服务中启动这个服务时,出现这样一个错误:
"在本地计算机无法启动ServerTest服务,服务并未返回错误,这可能是一个
windows内部错误或服务内部错误.如果问题持续存在,请与您的系统管理员 联系"
不知道我这样做的w2000服务程序有什么错误,还是indy9组件不能用于服务程序.
试了好几天,查了好多资料,也没有解决这个问题.
希望各位大哥,大姐帮帮我.如何才能把这个使用了indy组件的服务端程序变成win2000的服务.
 
我现在正在做一个网络程序.服务器和客户端用到了indy9 组件.
分别是IdTCPServer和IdTCPClient.
服务器端:在IdTCPServer的OnExecute事件句柄中处理了客户端的请求.由于indy组件本身是多线程的,所以这个服务器可以同时处理多个不同的连接请求.
客户端:用IdTCPClient来发起到服务器的连接.
程序做完后,功能正常运行.
现在我想把服务器端做成win2000的服务.
我的做法是
1.New Items对话框中新建一个Service Application.
2.之后delphi自动生成了一个TService的子类TTestService.我把自己做的
包含业务逻辑的IdTCPServer加入该类
type
TTestService = class(TService)
IdTCPListenServer: TIdTCPServer;

end;
3.在TService的OnStart事件句柄中启动IdTCPListenServer
procedure TTestService.ServiceStart(Sender: TService;
var Started: Boolean);
begin
IdTCPListenServer.Active:=true;
end;
编译之后生成一个ServerTest.exe文件.
4.安装该服务.
ServerTest /INSTALL
可以安装成功.
5,然后我在管理工具--服务中启动这个服务时,出现这样一个错误:
"在本地计算机无法启动ServerTest服务,服务并未返回错误,这可能是一个
windows内部错误或服务内部错误.如果问题持续存在,请与您的系统管理员 联系"
不知道我这样做的w2000服务程序有什么错误,还是indy9组件不能用于服务程序.
试了好几天,查了好多资料,也没有解决这个问题.
希望各位大哥,大姐帮帮我.如何才能把这个使用了indy组件的服务端程序变成win2000的服务.
 
用 FireDaemon 试试,华军有的下载
 
后退
顶部