2009-07-01 8 views
6

Ich habe einen WCF-Dienstverweis (= Client-Proxy), der von Visual Studio 2008 (.net 3.5 SP1) generiert wird. Der generierte Code enthält einen Datenkontrakt mit den Eigenschaften von DateTimeOffset, daher hat VS ihn natürlich mit KnowTypeAttribute (System.DateTimeOffset) dekoriert.DateTimeOffsetAdapter, das die WCF-Serialisierung von DateTimeOffset-Objekten beeinträchtigt

Jedes Mal, wenn ich einen WCF-Operation aufrufen, die die oben genannten Datenvertrag gibt, erhalte ich die folgende Ausnahme:

Typ ‚System.DateTimeOffset‘ kann nicht sein seit zur Liste der bekannten Typen hinzugefügt eine andere Art 'System.Runtime.Serialization.DateTimeOffsetAdapter' mit dem gleichen Datenvertragsnamen 'http://schemas.datacontract.org/2004/07/System:DateTimeOffset' ist bereits

Ich verstehe, dass DateTimeOffsetAdapter eine Struktur in System.Runtime.Serialization ist, die beim Serialisieren von DateTimeOffset-Objekten verwendet wird. Warum verursacht es diese Ausnahme und wie kann diese behoben oder vermieden werden?

+2

Sucks wurde nie beantwortet. – Paxenos

+0

Weiß jemand die Antwort? –

+0

@urig: Was haben Sie getan, um dieses Problem zu lösen? – billybob

Antwort

0

In meinem Fall wandern die Ausgabe von mit .Net 4 installiert Einhalt zu gebieten schien vor dem Hinzufügen von IIS als Feature zu Windows 7.

Ein Kollege und ich haben das Problem behoben, indem wir eine erweiterte Eingabeaufforderung (als Administrator ausführen) öffneten. Dann lief folgendes:

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319 
aspnet_regiis.exe -i 

Hoffe das hilft jemandem!

+1

Es gibt einen Fehler in dem Pfad: Sollte sein 'C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319' – billybob

+0

@billybob: Aktualisierte - Dank für das Auffinden – killercowuk

0

Ich weiß nicht warum. Aber das Problem zu lösen versuchen, Ihr Projekt zu .NET Framework Version 4