2009-10-15 9 views
1

우리는 WCF 서비스 (wsHttpBinding 사용)에 의해 노출되고 XML로 직렬화되는 개체가 있습니다. 당신이 볼 수 있듯이XML 직렬화 된 개체 그래프를 분석하여 가장 많은 공간을 차지합니다.

[DataContract] 
public class Person 
{ 
    [DataMember] private string _forename; 
    [DataMember] private string _middleInitial; 
    [DataMember] private string _surname; 
    [DataMember] private List<EducationRecord> _educationRecords; 
    [DataMember] private List<Address> _addresses; 
    [DataMember] private List<InternetAddress> _internetAddresses; 
    [DataMember] private List<PhoneNumber> _phoneNumbers; 
    [DataMember] private List<InternationalExperience> _internationalExperience; 
    [DataMember] private List<ProfessionalQualification> _professionalQualifications; 
    [DataMember] private List<KnownLanguage> _knownLanguages; 

    // And there's more ... 

} 

이 많은 컬렉션이 있습니다와 포함 된 개체 중 일부는 더 아이가 그 아래 개체가 : 여기에 그 중 하나의 추출물이다. 우리의 프로덕션 데이터와 비교해 보면, 대부분의 Person 레코드는 괜찮지 만 매우 큰 일련 화 메시지 (예 : 500KB 이상)로 변환되는 메시지가 있습니다.

이제 객체 그래프를 정리해야 할 필요가 있다고 생각하지만, 어떤 데이터 비트가 직렬화 된 메시지에 가장 많이 기여하는지 확인하고 싶습니다. 예를 들어 Address 개체의 목록입니까, 아니면 InternationalExperience 개체의 일부 데이터 조각입니까?

보내는 공간의 XML 메시지를 캡처하고 분석하여 가장 많은 공간을 차지하는 도구를 알 수 있습니까?

답변

0

얼마 전 WFC 호스트 (문제가 아님)를 작성하는 방법을 설명하고 메시지 내용을 표시하기 위해 IEndpointBehavior을 구현 한 article for CodeProject을 작성했습니다.

아마도 시도해 볼 수 있습니다.

+0

제안 해 주셔서 감사합니다.하지만 제 질문은 메시지를받는 방법에 관한 것이 아닙니다. WCF 추적을 통해이 작업을 수행 할 수도 있고 DataContractSerializer를로드하고 MemoryStream에 직렬화 한 다음 디스크에 쓸 수도 있습니다. 캡쳐 된 XML 분석에 대한 조언을 찾고 있습니다. –

0

예, 도구가 있습니다. WCF 구성 파일 도구를 사용하여 메시지 로깅을 활성화하고 큰 메시지를 검사 할 수 있습니다. SvcTraceViewer를 사용하면 추적 데이터를 분석 할 수 있습니다. MSDN에서 "메시지 로깅"을 검색하십시오.

관련 문제