欢迎来到天天文库
浏览记录
ID:6055296
大小:169.50 KB
页数:7页
时间:2018-01-01
《delphi调用webservice总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Delphi调用webservice总结2011-12-0612:44:45
2、分类:delphi
3、字号订阅Delphi调用C#写的webservice用delphi的THTTPRIO控件调用了c#写的webservice。下面是我调试时遇到的一些问题:1:导入wsdl文件:file--new----other----webservice---WSDLimporter---输入wsdl地址:如下:http://127.0.0.1/WebService/WebServiceCall.asmx?wsdl注意末尾的:'?wsdl'
4、不能少。要不可能会说找不到。2:设置THTTPRIO控件的属性:把http://127.0.0.1/WebService/WebServiceCall.asmx?wsdl赋给URL属性,而不是赋给wsdlLocation属性。3:传递参数是web服务端总为空:在导入的接口单元的声明部分添加如下代码:InvRegistry.RegisterInvokeOptions(TypeInfo(Service1Soap),ioDocument);//其中红色部分为导入接口名称。在IIS中配置C#写的webservice,有时候会出现如
5、下的错误:--------------------------------------------------------分析器错误消息:在应用程序级别之外使用注册为allowDefinition='MachineToApplication'的节是错误的。如果在IIS中没有将虚拟目录配置为应用程序,则可能导致此错误。源错误:安全身份验证模式。-->选中你要发布的虚拟目录-->右键单击-->属性-->目录(选项卡)-->应用程序名-->创建-->确定。然后再重新访问页面,应该就OK了。Delphi7建立测试程序1、新建一个应用程序:2、拖一个button一个edit和一个HTTPRIO(在webservices页上)到窗体上;3、接下来:File->new->other->webservices->WSDLimpor
7、ter输入wsdl文件地址,点击next导入保存unitService14、在unit1(form1的单元文件)中引用Service15、HTTPRIO1的URL属性设置为'http://localhost/WebService1/Service1.asmx?WSDL'6、添加form1的代码如下:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,InvokeR
8、egistry,Rio,SOAPHTTPClient;typeTForm1=class(TForm)Button1:TButton;Edit1:TEdit;HTTPRIO1:THTTPRIO;procedureButton1Click(Sender:TObject);private{Privatedeclarations}public{Publicdeclarations}end;varForm1:TForm1;implementationusesService1;{$R*.dfm}procedureTForm1.Butt
9、on1Click(Sender:TObject);beginEdit1.Text:=(HTTPRIO1asService1Soap).HelloWorld;end;end.如果有时候测试发现,还是不行.......可能有下面的问题,在用VS2005写的WebService的类属性中加入SoapRpcServiceAttribute属性就可以了。如下:[SoapRpcService(RoutingStyle=SoapServiceRoutingStyle.SoapAction)]Delphi开发和调用的webservice下
10、面说明如何编写用于IIS发布的ISAPI类型的WebService。1、New
11、Other
12、WebServices
13、SOAPServerApplication
14、这里先选择建立WebAppDebugger类型的WebService,因为这种类型的WebService便于调试,当我们调试好它,准备发布时再将
此文档下载收益归作者所有