IEnumerable<CyberResourceProvisioningAction>
을 반환하는 WCF 서비스를 만들었습니다.WCF - DataMember로 IEnumerable <T>을 장식하면 예외가 발생합니다. 기본 연결이 닫혔습니다. 예기치 않게 연결이 닫혔습니다.
CyberResourceProvisioningAction 유형은 AccountInformation 속성이 IEnumerable<CyberResourceProvisioningActionAccountInfo>
입니다.
을 폐쇄되었다 하지만 Google-fu는 컬렉션에 많은 수의 객체를 반환 할 때 가장 일반적으로 발생하는 문제임을 나타냅니다. 제안 된 해결 방법은WCF System.Net.WebException : :이 기본 연결이 닫혔습니다 : 나는 DataMemberAttribute로 AccountInformation 속성을 장식 할 때 나는 예외를받는 연결이 매우 일반적인 예외 분명히 예기치 않게
<dataContractSerializer maxItemsInObjectGraph="2147483646"/>
으로 설정하는 것입니다. 불행히도이 문제가 해결되지 않았습니다. (소량의 데이터를 반환 할 때 그렇게 생각하지 않았습니다.)
속성이 올바르게 설정되어 있으므로 내 문제가 직렬화 구성과 관련이 있다는 것을 확신 할 수 있습니다. 이런 식으로 WCF 서비스에 오류를 일으키는 클래스가 잘못 됐습니까? CyberResourceProvisioningActionAccountInfo
[DataContract]
public class CyberResourceProvisioningActionAccountInfo
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Value { get; set; }
}
추가 구성 정보가 필요한 경우
[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; }
}
나를 알고 내가 게시물을 수정할 것입니다 수 있습니다.
도움말 페이지가 활성화되어 있으면 활성화 예외가 표시되는지 찾아보십시오. 그렇지 않으면 디버거를 연결하고 예외를 트랩합니다. DataContract 프로그래밍 모델 위반일지도 모릅니다. – alexdej
@alexdej 디버거를 연결했지만 예외를 트랩하지 않습니다. 예외는 WCF 테스트 클라이언트에는 나타나지만 디버거에는 나타나지 않습니다. – ahsteele
WCF 호스트 프로젝트를 직접 디버깅 해보고'Type 'System.Data.Entity.Infrastructure.DbQuery1 [MYCLASS]'오류를 직렬화 할 수없는 다음 서비스에서받은 'WcfTestClient' –