Я создал службу WCF, которая возвращает IEnumerable<CyberResourceProvisioningAction>
.
Тип CyberResourceProvisioningAction имеет свойство AccountInformation IEnumerable<CyberResourceProvisioningActionAccountInfo>
. Когда я украшаю свойство AccountInformation с помощью DataMemberAttribute, я получаю исключение:
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; }
}
Если потребуется дополнительная информация о конфигурации, дайте мне знать, и я отредактирую сообщение.