2009-07-28 3 views
1

Ich habe schon verschiedene SOAP-Nachrichten ausprobiert, sogar eine, die einen leeren Header und Körper hat, aber ohne Erfolg in meine SoapHttpRouter abgeleitete Klasse :-(Getting "WSE003: Die Eingabe war keine gültige SOAP-Nachricht" bei jedem Aufruf einer WSE 2.0 SoapHttpRouter

auch, wenn ich traf die .asmx-URL mit dem Browser zu diesem Fehler kommt es .. hier detaillierter Stack-Trace des Fehlers:

[NotSupportedException: WSE003: The input was not a valid SOAP message.] 
Microsoft.Web.Services2.Messaging.SoapHttpRouter.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object asyncState) +134 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8677954 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155 

ich hoffe, dass jemand ist da draußen, wer hatte das gleiche Problem.Ich würde Ihre Hilfe sehr schätzen!

Antwort

0

Wenn ich diese Nachricht erhalten habe, liegt das normalerweise daran, dass ein serverseitiger Fehler vorliegt und die Standard-HTML-Fehlerseite anstelle der korrekt formatierten SOAP-Nachricht zurückgesendet wird.

Ich würde versuchen, durch den serverseitigen Code (wenn möglich) zu gehen, um sicherzustellen, dass es keine Probleme gibt.

0

War Ihnen bewusst, dass WSE 2.0 extrem veraltet ist? Noch mehr als WSE 3.0.

+0

Thx, ich bin mir dessen bewusst, dass WSE ist etw wie durch wcf ersetzt .. aber leider i don Glaube nicht, dass ich den WCF benutzen kann. Kann ich in einem klassischen C# .NET 2.0 Webservice-Projekt auch die WCF-Dienste hosten? Ich möchte nicht ein neues Projekt nur für den Zweck des Routings .. :-(gibt es ein gutes Beispiel für die Verwendung von WCF für Routing (klassisch!) Web-Service-Anrufe wie ich es mit WSE 2.0's SoapHttpRouter tun würde? –

+0

i vergaß zu sagen, dass meine URL immer dynamisch ist ... das bedeutet, dass das eigentliche Ziel-URL nach einem '&' an die SoapHttpRouter-URL angehängt wird, zumindest so geplant, dass eine statische referralCache.config dies nicht tun würde. –

+0

Zumindest könnten Sie auf WSE 3.0 upgraden, was etwas weniger veraltet ist.Sie ​​sollten auch lernen, dass es keinen Grund gibt, nicht auf .NET 3.5 SP1 zu "upgraden", da diese dieselbe CLR wie .NET 2.0 hat. NET 3.5 SP1 wendet .NET 2.0 SP2 an, fügt dann einige zusätzliche Assemblys hinzu, die Ihre vorhandenen Anwendungen nicht verwenden. –

0

Ich bin kürzlich auf dieses Problem gestoßen. Die Lösung war für mich die SOAP-Aktions-Httpheader auf die Anfrage hinzuzufügen, so dass der Request-Header etwas sah wie folgt aus:

POST <web service url> HTTP/1.1 
Content-Type: text/xml; charset=utf-8 
SOAPAction: <action url> 
Host: <host> 
Content-Length: xxx