2009-07-01 10 views
6

Ho un riferimento servizio WCF (= client proxy) generato da Visual Studio 2008 (.net 3.5 sp1). Il codice generato contiene un contratto dati con le proprietà DateTimeOffset, quindi VS lo ha decorato con KnowTypeAttribute (System.DateTimeOffset).DateTimeOffsetAdapter che interferisce con la serializzazione WCF degli oggetti DateTimeOffset

Quando invoco un'operazione di WCF che restituisce il sopra citato contratto di dati, ottengo la seguente eccezione:

Tipo 'System.DateTimeOffset' non può essere aggiunto alla lista dei tipi conosciuti dal un altro tipo 'System.Runtime.Serialization.DateTimeOffsetAdapter' con il nome del contratto stessi dati 'http://schemas.datacontract.org/2004/07/System:DateTimeOffset' è già presente

Comprendo che DateTimeOffsetAdapter è una struct in System.Runtime.Serialization utilizzata durante la serializzazione di oggetti DateTimeOffset. Quindi perché causa questa eccezione e come può essere riparata o evitata?

+2

Questo non ha mai risposto. – Paxenos

+0

Qualcuno conosce la risposta? –

+0

@urig: Che cosa hai fatto per risolvere questo problema? – billybob

risposta

0

Nel mio caso il problema sembrava derivare da avere .Net 4 installato prima di aggiungere IIS come una funzionalità per Windows 7.

Un collega e io abbiamo risolto il problema aprendo un prompt dei comandi con privilegi elevati (Esegui come amministratore). Quindi ha eseguito quanto segue:

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

Spero che questo aiuti qualcuno!

+1

C'è un errore nel percorso: dovrebbe essere 'C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319' – billybob

+0

@billybob: Aggiornato - grazie per l'individuazione – killercowuk

0

Non so perché. Ma per risolvere il problema provare a migrare il progetto alla versione di .NET Framework 4

Problemi correlati