设为首页 收藏本站
查看: 2545|回复: 0

[经验分享] Delphi WebService 的编写、调试、发布(IIS)、调用

[复制链接]

尚未签到

发表于 2015-8-16 08:01:59 | 显示全部楼层 |阅读模式
Delphi WebService 的编写、调试、发布(IIS)、调用
下面说明如何编写用于IIS发布的ISAPI类型的WebService。
1、 New|Other|WebServices|SOAP Server Application|这里先选择建立Web App Debugger
    类型的WebService,因为这种类型的WebService便于调试,当我们调试好它,准备发布时再将
    此类型转换为ISAPI类型。
2、 选择Web App Debugger后,随便输入一个ClassName,这里我们输入“Test”
3、 随后Delphi会询问你是否建立接口单元,选择是,然后输入接口的名字,我们输入Main,
   Delphi将自动建立接口单元(名字为你输入的接口名+Intf结束,即MainIntf)和实现接口的单
   元(名字为你输入的接口名+Impl,即MainImpl)。到此一个空的WebService已建立好。
4、 接下来我们将编写供别人调用的WebService函数。在此我们编写一个简单的例子。打开接口单元
(MainIntf),在Type后,接口声明后添加接口函数
“function GetMsg(AMsg: string): String; stdcall;”,函数后面必须加上“stdcall”。
   



5、接口函数的声明已经完成,下面就是要实现这个函数了。打开接口实现单元(MainImpl),
   在public中写上该函数的声明,在implement后写该函数的实现。
6、到此,WebService已经撰写完毕。接下来是调试。在我们新建的时候,Delphi已经为我们
   建立了一个Unit1和其窗体,在Unit1中引用接口单元(MainImpl),然后在窗体中加一个
   按钮,在按钮的单击事件中调用刚才写的WebService函数就可以调试了,
7、调试成功后就可以转类型了,将Web App Debugger类型转换为ISAPI类型其实很简单,我们
   先重新建一个ISAPI类型的WebService项目,依次选择New|Other|WebServices|
   SOAP Server Application|ISPA/…,提示是否创建接口时选择“是”,然后输入和刚才一
   样的接口名,接着保存好,然后将调试成功的Web App Debugger类型的WebService项目中的
   接口单元和接口实现单元复制替换掉刚刚创建的ISAPI类型项目中的接口单元和接口实现单元,
   然后打开ISAPI类型的WebService,编译生成dll。至此ISAPI类型的WebService建立成功。

8、将ISAPI类型的WebService发布到IIS上。在IIS中新建站点,新建时将执行权限设置成“脚本
   和可执行文件”,将WebService整个项目拷贝到站点文件夹下,启动站点,该WebService就算
   发布成功了,如果IIS是6.0以上的注意在Web服务扩展中将“所有未知ISAPI扩展”设置为允许,
   具体设置可参见IIS帮助文档。

9、如何用Delphi调用刚才写的WebService。在浏览器中输入刚才站点的路径,如:
   http://192.168.1.5:90/,浏览器转到项目所在文件夹,
   点击bin,打开生成的dll文件夹,再点击生成的dll文件,打开如下图所示的的dll描述页面,
   该dll中有三个接口函数HZ,LJ,SaveData,它们都是供别人调用的接口函数。
   点击WSDL打开WSDL描述页面,此时复制该页面的网址,这个网址是我们要用到的。
10、 得到网址后,新建一个Application,我们就在这个Application中调用刚才的WebService。
     依次点击New|Other|WebServices|WSDL Import,如后提示输入网址,我们输入刚才复制的
     网址,点击next,finish,此时Delphi将自动添加一个单元,该单元就是调用WebService的
     单元,有了这个单元我们就可以调用WebService了。在Unit1中引用该单元,再添加一个按钮,
     在按钮的单击事件中声明一个接口对象,然后调用自动生成单元中的GetMainIntf(该方法是
     自动生成的)函数给这个接口对象赋值,然后就可以用这个接口对象调用接口函数了。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-99533-1-1.html 上篇帖子: 利用C#创建 IIS 站点并设置.NET Framework版本为ASP.NET 2.0 的方法(一)转自孟子E章 下篇帖子: IIS错误信息--另一个程序正在使用此文件,进程无法访问!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表