wsHttpBinding
WCF サービスによって ( を使用して) 公開され、XML にシリアル化されるオブジェクトがいくつかあります。以下はそのうちの 1 つの抜粋です。
[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 レコードは問題ありませんが、非常に大きなシリアル化されたメッセージ (たとえば、500 KB を超える) に変換されるものがあることがわかります。
ここで、オブジェクト グラフの刈り込みを開始する必要があると思いますが、シリアル化されたメッセージに最も貢献しているデータのビットを見つけたいと思います。たとえば、それはAddress
オブジェクトのリストですか、それともInternationalExperience
オブジェクト内のデータの一部ですか。
送信されている XML メッセージをキャプチャして分析し、最も多くのスペースを占めているものを特定できるツールを知っていますか?