Business Performance - Increased

Recent Posts

Tags

Community

Email Notifications

Links

Archives

Ship your Product

“Everybody … has exactly the same job. They have exactly the same job description. And that is to ship products. Your job is not to write code. Your job is not to test. Your job is not to write specs. Your job is to ship products. That’s what a product development group does."
“When you wake up in the morning and you come in to work, you say, ‘What is the focus—are we trying to ship or are we trying to write code?’ The answer is, we are trying to ship. ”

Chris Peters, Microsoft program manager

WCF подесувања и Exception на „кинески“ јазик

Доколку дојдете во ситуација каде ќе го имате следниот Exception кој напрво многу ќе ве збуни, знајте дека се работи за едноставна промена во конфигурацијата на вашиот WCF сервис и клиент, и тој да исчезне. Exception-от е следен:

The formatter threw an exception while trying to deserialize the message: Error in deserializing body of request message for operation ‘Test’. The maximum string content length quota (8192) has been exceeded while reading XML data. This quota may be increased by changing the MaxStringContentLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader.

Иако пораката јасно кажува дека треба да се промени  MaxStringContentLength property но следниот објект (XmlDictionaryReaderQuotas) споменат во порака многу ке ве одвелече од правото место на промена на споменатото property.

Имено MaxStringContentLength property-то ја ограничува големината на стрингот (во byte-и) кој се враќа од некој повик на API. Default вредноста е 8192.  XmlDictionaryReaderQuotas е објект од System.Runtime.Serialization namespace-от кој се грижи за серијализација на објектите кои се разменуваат во пораките при WCF комуникацијата. Подесувањето на овие т.н. quotа-и се врши наједноставно во .config file-от на сервисот но и на клиентот.

 

<binding ....

....

<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />

... </binding>

Останатите полиња во овој config на кои треба да се обрне внимание доколку се појави овој тип на грешка се:

  • MaxReceivedMessageSize - кој ја ограничува максималната големина на една порака испратена до WCF сервисот
  • MaxArrayLength - кој ја ограничува максималната големина на една низа која се испраќа до WCF
Leave a Comment

(required) 

(required) 

(optional)

(required)