He creado un servicio WCF que devuelve IEnumerable<CyberResourceProvisioningAction>
.WCF: decorar IEnumerable <T> con DataMember produce Excepción: la conexión subyacente se cerró: la conexión se cerró inesperadamente
El tipo CyberResourceProvisioningAction tiene una propiedad de AccountInformation IEnumerable<CyberResourceProvisioningActionAccountInfo>
. Cuando decorar la propiedad AccountInformation con DataMemberAttribute recibo la excepción:
WCF System.NET.WebException: La conexión subyacente se cerró : La conexión se cerró inesperadamente
Obviamente una excepción muy genérico , pero mi Google-fu indica que el problema ocurre con mayor frecuencia al devolver grandes cantidades de objetos en una colección. La solución sugerida es establecer el <dataContractSerializer maxItemsInObjectGraph="2147483646"/>
. Lamentablemente, esto no ha solucionado mi problema. (No pensé que sería, ya que estoy devolviendo una pequeña cantidad de datos).
Las propiedades se están configurando correctamente, así que estoy bastante seguro de que mi problema tiene que ver con mi configuración de serialización. ¿Hay algo mal con mis clases que esté causando el error del servicio WCF de esta manera?
[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; }
}
Si se requiere información adicional de configuración hágamelo saber y voy a editar el cargo.
si tiene habilitada la página de ayuda, navegue hasta la misma para ver si está recibiendo una excepción de activación; de lo contrario, adjunte un depurador y excepciones de trampa. Parece que podría ser una violación del modelo de programación de DataContract. – alexdej
@alexdej Adjunté un depurador pero nunca atrapo ninguna excepción. La excepción aparece en WCF Test Client, pero no en mi depurador. – ahsteele
Intente depurar directamente su proyecto de host WCF y pruebe su servicio con el 'WcfTestClient' –