2009-09-25 3 views
1

Je souhaite appeler un service WCF à l'aide de SOAP?Appelez WCF à l'aide de l'appel SOAP

c'est mon contrat:

[ServiceContract(Namespace = "http://www.MySite.com/Services/TransferFile")] 
public interface ITransferFile : ICloseableAndAbortable 
{ 
    /// <summary> 
    /// This will send the file which is associated with this rule to all the subscribers. 
    /// </summary> 
    /// <param name="ruleId"></param> 
    [OperationContract] 
    void ByRuleId(int ruleId); 
} 

la liaison est actuellement fixé à cela, dois-je changer?

<endpoint address="" binding="wsHttpBinding" contract="FileTransfer.Wcf.ITransferFile"> 

alors comment l'appellerais-je via du savon? par exemple en utilisant les (HttpWebRequest) WebRequest

Un grand merci à l'avance

Répondre

5
  1. Modifier la liaison à basicHttpBinding

2 le message

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <soap:Body> 
    <ByRuleId xmlns="http://www.MySite.com/Services/TransferFile"> 
     <ruleId>3</ruleId> 
    </ByRuleId> 
    </soap:Body> 
</soap:Envelope> 

3 l'action du savon

POST /FileTransferService/TransferFile.svc HTTP/1.1 
SOAPAction: "http://www.MySite.com/Services/TransferFile/ITransferFile/ByRuleId" 

FYI j'ai demandé un (HttpWebRequest) WebRequest, seulement comme d'une manière posible, j'ai fini par utiliser un Web Reference et un fiddler

1

Y at-il une raison que vous préférez WebRequest au lieu de générer un proxy client svcutil.exe qui prend soin de toute la plomberie?

+2

I avoir un collègue qui utilise Sharepoint designer, pour créer un workflow qui appellera un webservice, snag est l'outil tiers qu'il utilise ne peut pas faire WCF il ne peut que comprendre l'action SOAP, et le corps .. donc je cherche un exemple simple qui je peux tester en .net (le WebRequest) et juste lui passer la chaîne dont il a besoin – dbones

1

Il y a un certain nombre de façons dont vous pouvez faire ceci:

  • créer un petit client WCF pour votre service vous-même, en utilisant svcutil ou « Ajouter un service de référence » dans un projet Visual Studio
  • exécuter un SOAP outil de test comme SoapUI ou WCFStorm contre votre service et créer des demandes et appelez votre service (et voir les résultats)
  • utiliser le client de test WCF WcfTestClient.exe qui est dans votre (Visual Studio)\Common7\IDE\Tools\bin (?? pas à 100% sûr de l'emplacement - vérifier et vous le trouverez à coup sûr) et qui vous permet de vous connecter à un service WCF en cours d'exécution, inspectez ses opérations, et aussi les appeler

Marc

Questions connexes