在Delphi Win32 Client中使用WCF服务(basicHttpBinding)时出现问
我正在尝试使用Delphi客户端(Delphi 2006)与使用WCF编写的服务进行通信.只需一个功能,服务非常简单.技术上如下:
[ServiceContract (Namespace = "http://www.company.com/sample/")] public interface IService { [OperationContract] string GetNumber (string name); } 我已在IIS上托管此服务,并使用带有mex端点的basicHttpBinding将其公开.我可以在.NET客户端中使用它. 我试图运行WSDLImp.exe并且它生成了一个源代码单元(顺便说一句,它生成了用于封装字符串类型的奇怪类.为什么它不能与Delphi字符串类型相同?).当我尝试调用此服务时,我得到异常:
我没有看到任何方法来配置Delphi Win32客户端来更改绑定或安全性参数.我该如何解决这个问题? 解决方法
我有完全相同的问题. Delphi很难导入WCF公开的WSDL.一种解决方案是将ASMX包装器添加到您的服务中,并将其与Delphi客户端一起使用.
这是一个例子: [ServiceContract (Namespace = "http://www.company.com/sample/")] public interface IService { [OperationContract] string GetNumber (string name); } public class Service : IService { public string GetNumber (string name) { return Repository.GetNumber(name); } } [WebService( Namespace = "http://www.company.com/sample/",Name = "wstest",Description = "description")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class AsmxService : WebService { [WebMethod] public string GetNumber(string name) { return Repository.GetNumber(name); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |