Ich habe eine Web-Service-Methode, wo ich einige benutzerdefinierte Ausnahmen, z. SomeException, SomeOtherException usw., die der Webdienst dann in einen SOAP-Fehler verwandeln würde, den der Client verarbeiten könnte. In Java kann ich wsdl: Fehlerelemente innerhalb des wsdl: operation-Elements in der WSDL haben. Es scheint, dass es .NET ist, dass dies nicht berücksichtigt ist und dass es keine Möglichkeit gibt, Attribute auf eine WebMethode zu setzen, um zu zeigen, welche SOAP-Fehler auftreten können..NET 2.0 Web Services WSDL Fehlerelement wird ignoriert?
Wenn ich einen Java-Webdienst mit wsdl: fault -Elementen erstelle und einen Webverweis zu einem .NET-Projekt hinzufüge, hätte ich erwartet, dass die wsdl: fault -Elemente entsprechend benannte Ausnahmen genauso erstellen, wie die anderen Entitäten erstellt, scheint dies jedoch nicht der Fall zu sein.
Ist es der Fall, dass WSDL: Fehler Elemente in einer WSDL vollständig von .NET ignoriert werden? Sie sind Teil der WSDL-Spezifikation, die unter http://www.w3.org/TR/wsdl definiert ist, also war dies nicht das Verhalten, das ich erwartet hatte.
Wenn dies der Fall ist, können Workarounds ein Ergebnisobjekt zurückgeben, das einen booleschen Erfolg/Fehler-Wert und eine Fehlermeldung/enum enthält. Oder mithilfe von SoapExceptions. Wenn ich mich dazu entscheide, SoapExceptions zu verwenden, setze ich die Emphese auf den Benutzer meines Web-Services, um diese zu behandeln und zu deserialisieren. Beides scheint keine gute Methode zu sein, dies zu beheben und zusätzliche Probleme und Code hinzuzufügen, um dies zu umgehen.
Irgendwelche Ratschläge?
Welche Art von Client verwenden Sie? Wenn es Silverlight in einem Browser ist, dann gibt es Mängel bei der Behandlung von SOAP-Fehlern. – sipwiz
Der Client ist eine ASP.NET-Website. – Martin