Ho creato un servizio WCF che restituisce IEnumerable<CyberResourceProvisioningAction>
.WCF - Decorazione IEnumerable <T> con DataMember causa Eccezione: la connessione sottostante è stata chiusa: la connessione è stata chiusa in modo imprevisto
Il tipo CyberResourceProvisioningAction ha una proprietà di AccountInformation IEnumerable<CyberResourceProvisioningActionAccountInfo>
. Quando I decorare la proprietà AccountInformation con DataMemberAttribute ricevo eccezione:
WCF System.Net.WebException: La connessione sottostante chiusa: La connessione stata chiusa inaspettatamente
Ovviamente un'eccezione molto generico , ma il mio Google-fu indica che il problema si verifica più comunemente quando si restituisce un numero elevato di oggetti in una raccolta. La soluzione suggerita è impostare <dataContractSerializer maxItemsInObjectGraph="2147483646"/>
. Purtroppo questo non ha risolto il mio problema. (Non pensavo che sarebbe come sto restituendo una piccola quantità di dati).
Le proprietà sono impostate correttamente, quindi sono abbastanza sicuro che il mio problema abbia a che fare con la mia configurazione di serializzazione. C'è qualcosa di sbagliato nelle mie classi che sta causando errori del servizio WCF in questo modo?
[DataContract]
public class CyberResourceProvisioningAction
{
[DataMember]
public string Action { get; set; }
[DataMember]
public DateTime RcdChgDateTime { get; set; }
[DataMember]
public string CyberResourceName { get; set; }
[DataMember]
public IEnumerable<CyberResourceProvisioningActionAccountInfo> AccountInformation
{ get; set; }
}
CyberResourceProvisioningActionAccountInfo
[DataContract]
public class CyberResourceProvisioningActionAccountInfo
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Value { get; set; }
}
Se è necessario ulteriori informazioni sulla configurazione fatemelo sapere e io modificare il post.
se hai abilitato la pagina della guida, naviga per vedere se ricevi un'eccezione di attivazione; altrimenti, allega un debugger e intercetta le eccezioni. Sembra che potrebbe essere una violazione del modello di programmazione DataContract. – alexdej
@alexdej Ho allegato un debugger ma non ho mai intrappolato alcuna eccezione. L'eccezione si presenta nel client di test WCF ma non nel mio debugger. – ahsteele
Prova a eseguire il debug del tuo progetto host WCF direttamente e prova il tuo servizio con il 'WcfTestClient' –