您的位置:首页 > 运维架构 > Apache

Delphi创建WebService部署到Apache

2016-03-01 09:59 417 查看
 从Apache官网下载httpd2.2版本,安装。网上说安装后把安装目录保留了,就是现成的绿色版,需要在其他机器上使用,直接执行批处理:bin\httpd -k install,就可以。安装后,自动启动httpd,在桌面右下角的启动栏中,有个httpd的图标,可点击这个图标重启、停止服务。

  启动DelphiXE7,创建新项目,项目类型选择WebServices-->SOAP Server Application-->ISAPI dynamic linklibrary-->后面的步骤一路确定,填写服务名称,勾选上创建范例方法。创建ISAPI成功,添加自己的接口方法并实现后,编译出dll,拷贝到D:\ws目录。

  打开Apache安装目录,在conf目录中找到httpd.conf.

在#AddHandler type-map var后面添加 AddHandler isapi-isa .dll (注意.dll前面有个空格)

在httpd.conf最后面添加自己的isapi库配置:

Alias /ws "D:/ws"                                 #Alias语法 Alias /URL二级域名 "制定isapi库目录"

<Directory "D:/ws">                            #配置isapi目录的权限

Options ExecCGI                               #必须设置 否则无权限访问目录中的动态库

Allow from all

</Directory>

ISAPICacheFile D:\ws\Project1.dll #让动态库预先加载,只是为提高效率

至此,配置完毕,在IE浏览器中输入 http://localhost/ws/Project1.dll,将看到熟悉的wsdl。现在可以让任意语言调用我们的webservice了。

 

RO服务端部署到Apache:

 

安装好RO后,创建新Delphi项目,选择RemObjects SDK中的ISAPI/NSAPI Server模板,启动向导创建ISAPI服务端和exe客户端。实现自动生成的接口后,编译得到服务端dll和客户端exe。

将服务端dll部署到Apache中:

打开httpd.conf文件,在上面所述配置的基础上,添加如下设置:

 

Alias /ro "D:/RO_ISAPI"

<Directory "D:/RO_ISAPI">

Options ExecCGI

Allow from all

</Directory>

ISAPICacheFile D:/RO_ISAPI/ROServer.dll

保存配置文件,重启Apache服务后,在IE浏览器中输入 http://127.0.0.1/ro/ROServer.dll

可以看到生成的rodl接口。

修改客户端ROChannel控件的TargetURL为http://127.0.0.1/ro/ROServer.dll/Bin

启动客户端测试,成功。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  apache web service delphi