Я пытаюсь сделать клиент Delphi (Delphi 2006) для связи со службой, написанной с использованием WCF. Сервис чертовски прост с одной функцией. Технически, как показано ниже:
[ServiceContract (Namespace = "http://www.company.com/sample/")]
public interface IService
{
[OperationContract]
string GetNumber (string name);
}
Я разместил эту службу в IIS и предоставил ее с помощью basicHttpBinding с конечной точкой mex. Я могу использовать его в клиентах .NET.
Я попытался запустить WSDLImp.exe, и он сгенерировал блок исходного кода (кстати, он генерирует странные классы для инкапсуляции строкового типа. Почему он не может быть таким же, как строковый тип Delphi?). Когда пытаюсь вызвать эту службу, получаю исключение:
Сообщение с Action '' не может быть обработано в получателе из-за несоответствия ContractFilter в EndpointDispatcher. Это может быть из-за несоответствия контракта (несоответствия действий отправителя и получателя) или несоответствия привязки / безопасности между отправителем и получателем. Убедитесь, что отправитель и получатель имеют одинаковый контракт и одинаковую привязку (включая требования безопасности, например, сообщение, транспорт, нет).
Я не вижу способа настроить клиент Delphi Win32 на изменение привязки или параметров безопасности. Как я могу исправить эту проблему?