2017-10-27 1 views
1

Ich erstelle SOAP-Dienst (ASMX-Dienst) in WCF-Dienst mit BasicHttpBinding. Das gleiche wie implementiert hereWCF-Dienst als statusfreier Dienst in Dienststruktur

Schnittstelle Schrieb als

[ServiceContract] 
public interface IExample 
    { 
    [OperationContract] 
    [WebMethod] 
    Task<XmlElement> GetDetails(); 

    [OperationContract] 
    [WebInvoke(Method = "Get", UriTemplate = "/GetExample")] 
    Task<string> GetExample (string guid); 
    } 

Implementations of Interface folgt: richtig

 public class ImplementInteface: IExample{ 
     public ImplementInterface(){} 

     public Task<XmleElement> GetDetails(){ 
      //Implementation of GetDetails function 
     } 

     public Task<string> GetExample(string guid){ 
      //Implementation of GetExampl function 
     } 
    } 

Nach dem Ausführen von Service-Gewebe, staatenlos Dienst ausgeführt wird.

Ich habe Legacy-Code (ASMX-Datei), wo die gleiche Struktur bereits definiert wurde und ATPs für die gleichen. URL, wo die Alt-Apis angezeigt werden, ich will sie nicht durcheinander bringen. Ich möchte neue SOAP API auf die gleiche URL verfügbar machen. Aber, wenn ich versuche, neue SOAP-APIs aus dem zustandslosen Dienst aufzurufen, gibt es mir Ungültige Anforderung als einen Fehler. Gibt es eine Möglichkeit, diese Apis in statuslosen Service in Service Fabric zu erstellen?

+0

Hier ist ein Beispiel für einen WCF-Dienst : https://github.com/loekd/ServiceFabric.WcfCalc – LoekD

+0

_ "... SOAP-Dienst (ASMX-Dienst) in WCF ..." _ - Nun, ASMX-Dienste sind weder SOAP-Dienste, noch verwenden sie WCF. ASMX-Dienste älter WCF und SOAP – MickyD

+0

@LoekD, implementierte ich meinen Dienst, indem Sie Ihren Code als Referenz betrachten. Dank dafür. Aber, wenn ich versuche, meine ATPs zu testen, um API zu testen, dann scheitern diese ATPs und geben mir als Ergebnis eine schlechte Anfrage. Ich bin neu in der SOAP-API. –

Antwort

0

Es wird nicht einfach so funktionieren. SOAP umfasst das Einschließen von Clientanfragen (eigentlich ihr Body) in ein XML.

die Adresse in den Browser erstellen wird keine XML-Typing, sondern eine einfache Anfrage

So senden,

  1. Entweder verwenden Sie etwas anderes eine SOAP-Anforderung zu senden (zB ein WCF-Client, dass Sie in C# oder ein Produkt von Drittanbietern wie SoapUI)
  2. oder Sie geben die SOAP-Anforderung und verwenden WCF erstellen REST Service schreiben müssen, die Wenn Sie Sie keine XML-Körper benötigt und kann über den Browser

mit # 2, gehen zu entscheiden aufgerufen werden muss dieses Attribut in Ihrer svc-Datei hinzufügen

Factory="System.ServiceModel.Activation.WebServiceHostFactory"