0

次のWebメソッドがあります

public List<ExtractDistribution> GetExtractsRecipients(String settlementDate, bool automatic)

ExtractDistributionクラスは次のように定義されます

public class ExtractDistribution
    {
        public bool selected;
        public string account ;
        public string email ;
        public string PDFfileName ;
        public string PDFpassword ;
        public DateTime reportDate;
        public int sendStatus ;
        public string sendStatusDesc ;
        public DateTime sendStatusDate ;
        public string parameters ;
        public string extensions ;
}

Web メソッドGetExtractsRecipientsのリストで最大 2000 項目を許可するには、バインディングでmaxReceivedMessageSizeをどの値に設定する必要がありますか?

計算方法は?

4

2 に答える 2

0

これは概算です。文字列が ASCII/UTF8 でエンコードされていると仮定します。

bool selected - 1 byte
string account - 100 bytes
string email - 100 bytes
string PDFfileName - 100 bytes
string PDFpassword - 100 bytes
DateTime reportDate - 8 bytes
int sendStatus - 4 bytes
string sendStatusDesc - 100 bytes
DateTime sendStatusDate - 8 bytes
string parameters - 100 bytes
string extensions - 100 bytes
Total - 721 bytes

そのため、多くのオブジェクトに対して 721 * 2000 または 1442000 バイト (~1442 kb) が必要になります。ただし、これはメッセージのエンベロープを考慮していません。SOAP を使用している場合、JSON エンベロープを使用する場合よりも明らかに大きくなります。

範囲を考えると、2000 レコードに対して約 2 mb (2048 kb) を想定するのが安全かもしれません。

編集:私の考えは少しずさんでした。この場合、SOAP エンベロープは、JSON エンベロープよりもそれほど大きくすべきではありません。ただし、英語以外の文字を考慮する必要がある場合、文字列のサイズはそれぞれ最大 400 バイトになる可能性があり、メッセージの合計サイズが大幅に増加します。うまくいけば、この回答が使用するサイズを決定するプロセスを説明し、状況に関するすべての詳細を考慮に入れることができます.

于 2013-08-20T17:08:19.497 に答える