我创建了一个返回的 WCF 服务IEnumerable<CyberResourceProvisioningAction>
。
CyberResourceProvisioningAction 类型具有 AccountInformation 属性IEnumerable<CyberResourceProvisioningActionAccountInfo>
。当我用 DataMemberAttribute 装饰 AccountInformation 属性时,我收到异常:
WCF System.Net.WebException:基础连接已关闭:连接意外关闭
显然是一个非常通用的异常,但我的 Google-fu 表明该问题最常发生在返回集合中的大量对象时。建议的解决方法是设置<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
. 不幸的是,这并没有解决我的问题。(没想到会因为我返回少量数据)。
属性设置正确,所以我很确定我的问题与我的序列化配置有关。我的类是否有问题导致 WCF 服务以这种方式出错?
[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; }
}
如果需要其他配置信息,请告诉我,我将编辑帖子。