c # Problème de client Soap – plus d’une configuration de noeud final pour le contrat a été trouvée

J’essaie d’écrire une simple application de console c # pour tester l’API SOAP à partir d’ici: https://www.imailtest.co.uk/webservice/imail_api.asmx?wsdl (ou https://www.imailtest.co.uk /webservice/imail_api.asmx pour voir les méthodes de l’API)

Donc, j’ai ajouté cette référence et j’ai essayé d’invoquer 2 méthodes api (Authentiacate & ProcessPrintReadyPDF) et j’ai eu cette erreur:

Erreur: une section de configuration de noeud final pour le contrat ‘ServiceReference1.imail_ apiSoap’ n’a pas pu être chargée car plusieurs configurations de noeud final ont été trouvées sur le contrat. Veuillez indiquer la section de configuration préférée du sharepoint terminaison par nom.

Voici mon code C #:

static void Main(ssortingng[] args) { // Anticipate Error try { // Generate SOAP Client ServiceReference1.imail_apiSoapClient soapClient = new ServiceReference1.imail_apiSoapClient(); // Login Console.WriteLine("Authenticating"); soapClient.Authenticate(iMailUser, iMailPass); // Proceed If PDF File Exists if (File.Exists(PDFFile)) { // Upload PDF File To iMail Console.WriteLine("Uploading PDF File"); soapClient.ProcessPrintReadyPDF(File.ReadAllBytes(PDFFile), "", true); // Test Complete Console.WriteLine("Done"); } else { // Log Error Console.WriteLine("PDF File [{0}] Does Not Exists", PDFFile); } } catch (Exception ex) { // Log Error Console.WriteLine("Error : "+ ex.Message); } // End Test Console.WriteLine("Press any key to continue ..."); Console.ReadKey(); } 

Voici comment j’ai ajouté la référence de service à mon application de console: http://soffr.miximages.com/soap/mKmRyrI.png

Des idées?

Dans votre App.config, vous pouvez voir quelque chose comme ça

      

supprimer le deuxième point d’extrémité et maintenant il devrait être comme ça

    

maintenant, exécutez le code, espérons que votre code fonctionne correctement

Je crois que le problème est résolu en définissant le nom du contrat comme tel (basé sur ma capture d’écran):

 ServiceReference1.imail_apiSoapClient soapClient = new ServiceReference1.imail_apiSoapClient("imail_apiSoap"); 

Maintenant, je ne reçois plus d’erreur et l’API semble fonctionner.

[Résolu! il suffit d’append le sharepoint fin dans la classe proxy asp du webservice sous la capture d’écran

entrer la description de l'image ici

Si vous souhaitez conserver les deux configurations client dans votre fichier de configuration, créez simplement un paramètre d’application.

Ainsi, votre fichier App.config contiendra cette entrée qui vous permettra de spécifier le sharepoint terminaison souhaité:

  imail_apiSoap  

Vous pouvez donc utiliser dans votre code:

 ServiceReference1.imail_apiSoapClient soapClient = new ServiceReference1.imail_apiSoapClient(Properties.Settings.Default.EndPoint);