Probleme mit dem Datum (DateTime) beim Aufruf eines WebServices

Wiedermal Probleme mit dem Datum und der Zeit. Wenn man die Standard-Funktionalität von VisualStudio 2008 zum hinzufügen einer Service Reference verwendet, wird alles generiert, was es zum Aufrufen eines WebService braucht. Für das Serialisieren und Deserialisieren ist der XmlCustomFormatter zuständig! Seine ToTime-Methode versteht ausgerechnet das Format "HH:mm" nicht ( erst ab "HH:mm:ss") und das war mein Stolperstein!

Aber herauszufinden, was der Webservice zurückgibt ist gar nicht so einfach. Zuerst habe ich es mit Fiddler probiert. Der ausgezeichnete Beitrag Monitoring HTTP Output with Fiddler in .NET HTTP Clients and WCF Proxies von Rick Strahl gibt einen guten Einstieg. Ich habe den Proxy auf dem generierten Client gesetzt:

client.Proxy = new WebProxy("http://127.0.0.1:8888");

Leider habe ich die Antwort nicht gesehen. Eventuell hat es mit dem Https-Protokoll zu tun.

Ein zweiter Versuch gilt dem Debugger. Beim Kompilieren wird eine Assembly mit dem Namespace Microsoft.Xml.Serialization.GeneratedAssembly generiert. Also hört man auf die Exceptions der CLR:


Exceptions einstellen

Jetzt braucht es noch den Eintrag

 <system.diagnostics>

    <switches>

      <add name="XmlSerialization.Compilation" value="4"/>

    </switches>

  </system.diagnostics>

im app.config und man kann beim Fehler hinein-steppen. Ein XmlTextReader liest die Antwort vom WebService. Er kann nur vorwärts lesen! Deshalb muss man den WebService 2 Mal aufrufen. Beim ersten Mal den Breakepoint setzen und beim 2. Mal nachschauen, welcher Wert geliefert wurde.

Immer diese Probleme mit Zeit und Datum ;-)

Kommentar schreiben