WCF e DataContract: errore durante la serializzazione

Ho da poco eseguito un profondo refactoring su un mio progetto cambiando i DataContract scambiati dai miei servizi. Alcuni metodi di un mio servizio hanno cominciato ad avere un comportamento un po' bizzarro dopo questo cambiamento: in pratica, all'invocazione del metodo, veniva sollevata una eccezione con questo messaggio:

An error occurred while receiving the HTTP response to 'http://.../Service'. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.

Questo succedeva perchè il mio DataContract esponeva due DataMember come IList<T>; cambiando queste due IList<T> con due Array i servizi hanno ripreso a funzionare correttamente. Non sono sicuro di cosa non vada bene a riguardo di IList<T>, ma sembra proprio che il DataContractSerializer non lo digerisca un granchè bene.

N.B. Ricercando in giro per il Web sembra che DataContractSerializer non abbia problemi noti con IList<T>, mentre ad averli sembrerebbe il suo diretto "concorrente", il caro vecchio XmlSerializer. I miei servizi usano il serializzatore di default, quindi DataContractSerializer.

 

Matteo

 

Print | posted @ martedì 9 dicembre 2008 13:00

Comments have been closed on this topic.