J'essaye de faire un client Delphi (Delphi 2006) pour communiquer avec un service écrit en utilisant WCF. Le service est sacrément simple avec une seule fonction. Techniquement comme ci-dessous:Problème lors de la consommation du service WCF (basicHttpBinding) dans Delphi Win32 Client
[ServiceContract (Namespace = "http://www.company.com/sample/")]
public interface IService
{
[OperationContract]
string GetNumber (string name);
}
J'ai hébergé ce service sur IIS et exposé à l'aide basicHttpBinding au point final MEX. Je suis capable de l'utiliser dans les clients .NET.
J'ai essayé d'exécuter WSDLImp.exe et il a généré une unité de code source (btw, il génère des classes wierd pour encapsuler le type de chaîne, pourquoi ne peut-il être identique au type de chaîne Delphi?). Lorsque j'essaie d'appeler ce service, j'obtiens l'exception:
Le message avec Action '' ne peut pas être traité sur le récepteur, en raison d'une incompatibilité ContractFilter sur EndpointDispatcher. Cela peut être dû soit à une non-concordance de contrat (Actions non concordantes entre l'expéditeur et le destinataire), soit à une non-concordance de liaison/sécurité entre l'expéditeur et le destinataire. Vérifiez que l'expéditeur et le destinataire ont le même contrat et la même liaison (y compris les exigences de sécurité, par exemple Message, Transport, Aucune).
Je ne vois aucun moyen de configurer le client Delphi Win32 pour modifier les paramètres de liaison ou de sécurité. Comment puis-je résoudre ce problème?
Désolé mais je ne comprends pas ce que vous voulez dire par "ajouter un wrapper ASMX". S'il vous plaît pouvez-vous élaborer? – Hemant
Par "ajouter un wrapper ASMX" je veux dire que vous pouvez ajouter un service web ASMX à votre solution qui a les mêmes méthodes que votre service WCF et ces méthodes effectuent exactement les mêmes tâches. Une fois que vous avez ajouté ce service Web asmx, vous obtenez un point de terminaison .asmx qui pourrait être utilisé par les clients Delphi. –
Je ne sauterais plus à ASMX: http://johnwsaundersiii.spaces.live.com/blog/cns!600A2BE4A82EA0A6!860.entry. –