Максимальная квота длины массива (16384) была превышена при чтении данных XML

Я получаю следующее сообщение об ошибке

При чтении данных XML превышена максимальная квота длины массива (16384). Эту квоту можно увеличить, изменив свойство MaxArrayLength в объекте XmlDictionaryReaderQuotas, используемом при создании средства чтения XML. Строка 1, позиция 187231. Эту квоту можно увеличить, изменив свойство MaxArrayLength в ...

Я получаю следующее сообщение об ошибке

При чтении данных XML превышена максимальная квота длины массива (16384). Эту квоту можно увеличить, изменив свойство MaxArrayLength в объекте XmlDictionaryReaderQuotas, используемом при создании средства чтения XML. Строка 1, позиция 187231. Эту квоту можно увеличить, изменив свойство MaxArrayLength в ...

Я получаю следующее сообщение об ошибке

При чтении данных XML превышена максимальная квота длины массива (16384). Эту квоту можно увеличить, изменив свойство MaxArrayLength в объекте XmlDictionaryReaderQuotas, используемом при создании средства чтения XML. Строка 1, позиция 187231. Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека, чтобы получить дополнительную информацию об ошибке и ее происхождении в коде.

Сведения об исключении:

System.Xml.XmlException: превышена максимальная квота длины массива (16384) при чтении данных XML. Эту квоту можно увеличить, изменив свойство MaxArrayLength в объекте XmlDictionaryReaderQuotas, используемом при создании средства чтения XML. Строка 1, позиция 187231.

Ошибка источника:

Необработанное исключение было создано во время выполнения текущего веб-запроса. Информацию о происхождении и местонахождении исключения можно определить с помощью трассировки стека исключений ниже.

Stack Trace:

[XmlException: The maximum array length quota (16384) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 1, position 187231.]
   System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3) +311
   System.Xml.XmlExceptionHelper.ThrowMaxArrayLengthExceeded(XmlDictionaryReader reader, Int32 maxArrayLength) +59
   System.Xml.XmlBaseReader.ReadContentAsBase64() +1580759
   System.Xml.XmlDictionaryReader.ReadElementContentAsBase64() +62
   System.Runtime.Serialization.XmlReaderDelegator.ReadElementContentAsBase64() +58
   ReadPDFResponseFromXml(XmlReaderDelegator , XmlObjectSerializerReadContext , XmlDictionaryString[] , XmlDictionaryString[] ) +525
   System.Runtime.Serialization.ClassDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context) +47
   System.Runtime.Serialization.XmlObjectSerializerReadContext.ReadDataContractValue(DataContract dataContract, XmlReaderDelegator reader) +15
   System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, DataContract& dataContract) +128
   System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, DataContract dataContract, String name, String ns) +39
   System.Runtime.Serialization.DataContractSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName) +167
   System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName) +98

[SerializationException: There was an error deserializing the object of type Compass.GK.DataCommon.PDFResponse. The maximum array length quota (16384) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 1, position 187231.]
   System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName) +496
   System.Runtime.Serialization.DataContractSerializer.ReadObject(XmlDictionaryReader reader, Boolean verifyObjectName) +44
   System.ServiceModel.Dispatcher.DataContractSerializerOperationFormatter.DeserializeParameterPart(XmlDictionaryReader reader, PartInfo part, Boolean isRequest) +52

[NetDispatcherFaultException: The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:PDFRequestResult. The InnerException message was 'There was an error deserializing the object of type Compass.GK.DataCommon.PDFResponse. The maximum array length quota (16384) has been exceeded while reading XML data. This quota may be increased by changing the MaxArrayLength property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 1, position 187231.'.  Please see InnerException for more details.]
   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +7599119
   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +275
   Compass.GK.Datalink.WebServiceReference.ICompassGKService.PDFRequest(Request request) +0
   Compass.GK.Datalink.RequestMaker.PDFRequest(String encryptionKey, String PDFType, String userName) +164
   GKService.GKPDFHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) in C:\Joxin\GreenekingApplication\Application\GKService\GKPDFHandler.cs:66
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

my web.cofing client side entry is like this
        <binding name="BasicHttpBinding_ICompassGKService" closeTimeout="00:01:00"
         openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
         allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
         maxBufferSize="2097152" maxBufferPoolSize="524288" maxReceivedMessageSize="2097152"
         messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
         useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="2097152"
            maxBytesPerRead="4096" maxNameTableCharCount="2097152" />
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None"
              realm="" />
            <message clientCredentialType="UserName" algorithmSuite="Default" />
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>

Я ничего не знаю? Но при доступе к этому локально vs.net 2008 он работает нормально.

Но когда я публикую свое приложение на сервере, возникает только эта проблема ..

спасибо

shaji

7
задан Marcelo Cantos 28 November 2010 в 14:31
поделиться