Comment faire pour Augmenter la MaxArrayLength dans un web WCF.config - pour le téléchargement de fichiers volumineux
J'ai creuser tout autour sur le net pour les deux jours à ce sujet, et je ne peux pas faire mon asp.net site web pour télécharger des fichiers de plus de 16 ko
Je suis en utilisant fileUploader,wcf, et j'ai une référence de service dans le client.
quand j'ai télécharger le fichier en 30KO de la taille, il m'a demandé d'augmenter le MaxArrayLength.
La longueur maximale de la matrice de quota (16384) a été dépassé lors de la lecture de données XML. Ce quota peut être augmenté par la modification de la
2
MaxArrayLength bien sur la XmlDictionaryReaderQuotas objet utilisé lors de la création du lecteur XML. La ligne 1, la position 205847.
et c'est juste ce que j'ai fait, mais il n'arrête pas de se plaindre à ce sujet.
si je télécharger un fichier de 1 mo, j'obtiens l'erreur 400.
Le serveur distant a retourné une erreur: (400) Bad Request
s'il vous plaît aider
l'application cliente.config:
<bindings>
<basicHttpBinding>
<binding name="streamingBinding"
transferMode="Streamed"/>
<binding name="BasicHttpBinding_IBLServer" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="TransportCredentialOnly">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8888/BLService.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IBLServer" contract="WSRef.IBLServer"
name="BasicHttpBinding_IBLServer" />
</client>
le web WCF.config:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
<behavior name="BLServer.BackEndBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
<serviceTimeouts transactionTimeout="05:05:00" />
<serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="500"
maxConcurrentInstances="2147483647" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<bindings>
<basicHttpBinding>
<binding name="streamingBinding"
transferMode="Streamed"/>
<binding name="BasicHttpBinding_IBLServer"
maxBufferPoolSize="2147483647" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Windows" />
</security>
<readerQuotas
maxDepth="64"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="4096"
maxNameTableCharCount="16384"/>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service behaviorConfiguration="BLServer.BackEndBehavior" name="WSRef.BackEnd">
<endpoint address="" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IBLServer"
contract="WSRef.IBLServer" />
</service>
<service name="StreamingService.Upload">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="streamingBinding"
contract="StreamingService.IUpload"/>
</service>
</services>
fichiers <16 KO téléchargés avec succès.
pouvez-vous s'il vous plaît savoir ce que j'ai fait de mal?
Vous devez vous connecter pour publier un commentaire.
EDIT: Ok, je vois que vous faites déjà... Êtes-vous sûr que vous avez sont de cartographie correctement les liaisons. Lisez le premier post ci-dessous, qu'ils avaient un problème avec la cartographie de la liaison.
Vérifier ces:
Maximale de la matrice de longueur de quota
Service WCF La longueur maximale de la matrice de quota (16384) a été dépassé
La modification de la MaxArrayLength bien sur la XmlDictionaryReaderQuotas objet utilisé lors de la création du lecteur XML
Comment gérer les téléchargements de gros fichiers via WCF?
Espère que cette aide.
J'ai lutté avec le même problème pendant des heures. Enfin, j'ai réalisé que j'ai été en utilisant un fichier de configuration de transformation et de mon
maxArrayLength
gardé écrasés par la transformation. Temps pour certains de la caféine.