我正在尝试使 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 字符串类型相同?)。当我尝试调用此服务时,出现异常:
由于 EndpointDispatcher 的 ContractFilter 不匹配,接收方无法处理带有 Action '' 的消息。这可能是因为合约不匹配(发送方和接收方之间的操作不匹配)或发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的绑定(包括安全要求,例如消息、传输、无)。
我看不到任何方法可以配置 Delphi Win32 客户端以更改绑定或安全参数。我该如何解决这个问题?