Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
SOAP Anfrage nicht korrekt
Kriz
myCSharp.de - Member



Dabei seit:
Beiträge: 115

Themenstarter:

SOAP Anfrage nicht korrekt

beantworten | zitieren | melden

Hallo zusammen,

folgendes Problem:
Ich muss an eine SOAP Schnittstelle Daten senden, bekomme aber als Antwort immer nur

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
         <faultcode>S:Server</faultcode>
         <faultstring>The configured protocol is not SOAP, which has been requested.</faultstring>
      </S:Fault>
   </S:Body>
</S:Envelope>

Leider kenne ich mich nicht mit SOAP aus und wenn ich die Fehlermeldung google, bekomme ich gar keine passende Antwort. Ich weiß noch nicht einmal an welcher Stelle ich den Fehler suchen muss, liegt es an meinem Code, oder an der übermittelten Datei?

Mein Code:


                XmlDocument Doc = new XmlDocument();
                Doc.InnerXml = result.ToString();

                HttpWebRequest Req = (HttpWebRequest)WebRequest.Create(PriceURL);
                Req.Headers.Add("SOAPAction", "");
                Req.ContentType = "text/xml;charset=\"utf-8\"";
                Req.Accept = "text/xml";
                Req.Method = "POST";
                Req.Timeout = 10000;
                Req.ClientCertificates.Add(Certi);
                
                using (var streamWriter = new StreamWriter(Req.GetRequestStream()))
                {
                    streamWriter.Write(Doc);
                }

                //Überprüfen ob API Daten korrekt erhalten hat
                using (var response = (HttpWebResponse)Req.GetResponse())
                {
                    using (var streamReader = new StreamReader(response.GetResponseStream()))
                    {
                        var json = streamReader.ReadToEnd();

                    }
                }

das Feld "result" vom Typ StringBuilder

Bevor es jetzt wieder böse Kommentare kommen:
Ich hab das Projekt aufs Auge gedrückt bekommen, das wurde vor 13 Jahren mal geschrieben und seit dem war da keiner mehr dran, nun soll ich als Service und WPF portieren. Bis jetzt hatte ich auch noch nie irgendwelche Berührungspunkte mit SOAP und werde es danach auch nicht mehr haben.
Ich kann "The configured protocol is not SOAP, which has been requested." übersetzen, weiß aber weder wo dieses Protokoll konfiguriert wird/wurde, noch von welcher Seite es verlangt wird/wurde.

Schonmal vielen Dank im Vorraus!
Kriz
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1.986
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

Du brauchst bei SOAP und C# eigentlich keinen WebRequest basteln.
Du kannst dir die Metadaten des Service i.d.R. ziehen und dir die Proxy Klassen daraus erstellen lassen.
Das dürfte viel einfacher sein und du sparst dir das Request gebastel

Im einfachsten Fall kommst du an die Metadaten wenn du ans die Url ein ?wsdl anhängst.

Nachtrag:
Doku zum Thema Serialisierung und SOAP:
XML- und SOAP-Serialisierung

T-Virus
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von T-Virus am .
Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15.852

beantworten | zitieren | melden

.. vor allem nicht mit dem WebRequest, den man seit 127 Jahren nicht mehr nutzen soll.
=> HttpClient Klasse (System.Net.Http)

=> Integrating with SOAP web services in .NET Core (Gilt für alle WSDL SOAP Endpunkte)
Zitat
wenn ich die Fehlermeldung google, bekomme ich gar keine passende Antwort
Wenig Treffer => Hinweis, dass es eine Custom Error Message ist, und nicht von Standard SOAP.
Zitat
Bis jetzt hatte ich auch noch nie irgendwelche Berührungspunkte mit SOAP und werde es danach auch nicht mehr haben.
Musst Dich halt trotzdem mit einer Technologie auseinander setzen, um Aufgaben erfüllen zu können.
Das kommt niemanden einfach so zugeflogen :-)
private Nachricht | Beiträge des Benutzers
Kriz
myCSharp.de - Member



Dabei seit:
Beiträge: 115

Themenstarter:

beantworten | zitieren | melden

Ok, danke für die Hinweise!
private Nachricht | Beiträge des Benutzers