Delphi开发WebService给ASP.NET调用

1、本文档分3个部分,分别为:

用Delphi编写WebService

在IIS下部署WebService

在ASP.NET中调用webservice

2、开发环境为Windows XP SP2、Delphi 7.0、IIS 5.1、VS 2008(C#)

 

一、用Delphi编写WebService

第1步:File → New → Other → WebServices → SOAP Server Application

 

 

第2步:选择ISAPI/NSAPI Dynami Link Library

 

 

第3步:选择Yes

 

第4步:输入接口的名称,这里用Main,其他选项不用改,点OK

 

 

第5步:打开项目管理器,再打开MainIntf.pas文件,MainIntf.pas是接口定义单元

 

 

第6步:在MainIntf.pas中定义一个Sum函数,此函数的功能是计算2个整数的和并显示,如红色框中所示

 

 

 

第7步:打开MainImpl.pas文件,MainImpl.pas是接口实现单元。在此单元中实现Sum函数

 

第8步:打开项目管理器,编译Project1.dll

 

二、在IIS下部署WebService

第1步:用inetmgr命令打开IIS管理器

 

 

第2步:如下图所示,在默认网站点击右键,然后新建 → 虚拟目录

 

 

第3步:点下一步

 

 

第4步:虚拟目录别名,这里输入webservice,点下一步

 

 

第5步:输出目录,建议使用“C:\Inetpub\wwwroot”,“C:\Inetpub\wwwroot”这个目录在第8步中会用到。点下一步

 

 

第6步:访问权限,勾选“执行(如ISAPI引用程序活CGI)”,这项很重要,一定要勾选,然后点下一步

 

 

第7步:点击完成,在IIS管理器就可以看到webservice的虚拟目录了

 

 

 

 

第8步:把Project1.dll拷贝到C:\Inetpub\wwwroot目录中,如果提示Project1.dll被占用,可以在任务管理器中强行结束dllhost进程后再拷贝,如下图所示

 

 

第9步:在浏览器中输入http://localhost/webservice/Project1.dll这个网址,如果显示以下页面,说明webservice可用。

如果点击页面中“IMain”旁边的“[WSDL]”,则浏览器会跳转到

http://localhost/webservice/Project1.dll/wsdl/IMain

这个网址接下来我们会用到

 

 

三、在ASP.NET中调用webservice

第1步:开启VS2008,文件 → 新建 → 网站

 

第2步:选择ASP.NET网站,语言是C#,点确定

 

 

第3步:解决方案资源管理器,点右键,选择“添加Web引用”

 

 

 

第4步:在URL中输入

http://localhost/webservice/Project1.dll/wsdl/IMain然后点“前往”

 

 

第5步:web引用名,可以用默认值,点“添加引用”

 

 

 

 

第6步:双击“Default.aspx”,再双击“Default.aspx.cs”

 

第7步:在左边的“Default.aspx.cs”的代码窗口添加以下代码,如红色框中所示

 

 

第8步:按Ctrl+F5运行,正确的显示页面如下