Apie maksimalaus perduodamos informacijos kiekio padidinimą
Gali nutikti, kad atsakymai (pranešimai) iš Web servisų yra gana dideli (pvz., didelis prekių, darbuotojų, klientų sąrašas ir pan., didelis dokumentas ir t.t.) ir .net aplikacija pateikia klaidą apie tai, kad viršytas maksimalus pranešimo dydis (System.ServiceModel.Communication: The maximum size quota or incoming messages (xxxxxx) has been exceeded). Norint išvengti šios klaidos (ir užsitikrinti saugų programos veikimą) reikia padidinti MaxReceivedMessageSize dydį (kurio nutylimoji reikšmė yra 65536, t.y. 64 KB).
Tam reikia surasti atitinkamą rišantįjį elementą. Jums teks redaguoti aplikacijos web.config (arba app.config) konfigūracinį failą. Jame suraskite binding elementą (pagal nurodytą hierarchinę schemą), kuris atrodys maždaug taip:
<configuration>
…
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name=”ObjectServicePortBinding” closeTimeout=”00:01:00″
… maxBufferSize=”65536″ maxBufferPoolSize=”524288″
maxReceivedMessageSize=”65536″ … >
…
</binding>
…
</basicHttpBinding>
</bindings>
…
</system.serviceModel>
…
</configuration>
Pakeiskite maxBufferSize, maxBufferPoolSize ir maxReceivedMessageSize reikšmes į planuojamą didžiausią galimą Web serviso atsakymą. Tarkim, 512 KB reikšmę nurodo skaičius 524288. Aišku, elkitės protingai ir be reikalo pernelyg nepadidinkite šios reikšmės, nes tai atsilieps bendram sistemos produktyvumai, nes aplikacija reikalaus daugiau atminties resursų.
Beje, tai galima padaryti ir programiškai, bet apie tai kitą kartą.





