创建NT服务形式的MySOAPService.exe
首先完成前面的服务程序,因为需要用到前面的源代码,然后按下面步骤进行:
点菜单File --> New --> Other,在new标签面板中选择Service Application图标,点OK
在Service1窗口中,按F11激活对象观察器,选择Properties页,将Name属性从Service1改为MyService。
点击菜单Project --> Add To Project,选择前面建立的文件MyWebModuleU.pas点OK
同样操作加入文件MySOAPWebServiceIntf.pas和MyAppServerSoapDataModuleU.pas。
点菜单View --> Project Manager,打开工程管理器,展开Project(n).exe,展开Unit1,
双击Unit1.pas,在interface部分uses加入IdHTTPWebBrokerBridge。
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
IdHTTPWebBrokerBridge;
在TService1 声明中加入私有变量FWebBrokerBridge:
private
FWebBrokerBridge: TIdHTTPWebBrokerBridge;
在 implementation部分uses中加入MyWebModuleU
{$R *.DFM}
uses
MyWebModuleU;
点菜单View --> Project Manager,打开工程管理器,双击 MyService,按F11激活对象观察器,选择Event标签,
双击OnStart事件,ServiceStart过程中加入下面代码:
// Create server.
FWebBrokerBridge := TIdHTTPWebBrokerBridge.Create(Self);
// Register web module class.
FWebBrokerBridge.RegisterWebModuleClass(TMyWebModule);
// Set default port.
FWebBrokerBridge.DefaultPort := 1024;
// Start server.
FWebBrokerBridge.Active := True;
同样在OnStop事件的ServiceStop方法中加入下面代码:
// Stop server.
FWebBrokerBridge.Active := False;
// Free server component.
FreeAndNil(FWebBrokerBridge);
点菜单File --> Save Project As进行保存
Unit1 命名为MyServiceU.pas
Project(n)命名为MySOAPService.dpr
点菜单Project --> Build MySOAPService.
注册Windows服务:
点菜单Run --> Parameters,在Parameters中输入: /install,点OK
点菜单Run --> Run.(应该会提示服务安装成功),再点OK
点菜单Run --> Parameters,将参数清空,点OK
按Ctrl-Shift-S组合键保存所有。
然后在Window的控制面板-管理工具-服务,可以开启服务(如果之前的MySOAPServer.exe仍在运行,请结束,否则会占用端口)。
Double-click on the MyService entry.
Press the [F11] key for the Object Inspector.