156 votes

(413) Entité de demande trop grande | uploadReadAheadSize

J'ai écrit un service WCF avec .NET 4.0, qui est hébergé sur mon ordinateur Windows 7. x64 Système ultime avec IIS 7.5. L'une des méthodes du service a pour argument un "objet" et j'essaie d'envoyer un byte[] qui contient une image. Tant que la taille du fichier de cette image est inférieure à environ 48 Ko, tout se passe bien. Mais si j'essaie de télécharger une image plus grande, le service WCF renvoie une erreur : (413) Request Entity Too Large. Bien sûr, j'ai passé 3 heures à chercher le message d'erreur sur Google et tous les sujets que j'ai vus à ce sujet suggèrent d'augmenter la propriété 'uploadReadAheadSize'. Ce que j'ai fait, c'est utiliser les commandes suivantes (10485760 = 10MB) :

"appcmd.exe set config -section:system.webserver/serverruntime/uploadreadaheadsize: 10485760 /commit:apphost"

"cscript adsutil.vbs set w3svc/<APP_ID>/uploadreadaheadsize 10485760"

J'ai également utilisé IIS Manager pour définir la valeur en ouvrant le site et en allant dans "Configuration Editor" sous Management. Malheureusement, j'obtiens toujours l'erreur "Request Entity Too Large" et cela devient vraiment frustrant !

Quelqu'un sait-il ce que je peux essayer d'autre pour corriger cette erreur ?

8 votes

10485760 = 10MB, pas 1MB

9voto

Anas Points 1705

Cela m'a aidé à résoudre le problème (une seule ligne - divisée pour la lisibilité / la copiabilité) :

C:\Windows\System32\inetsrv\appcmd  set config "YOUR_WEBSITE_NAME" 
     -section:system.webServer/serverRuntime /uploadReadAheadSize:"2147483647" 
     /commit:apphost

0 votes

Hébergez-vous votre WCF dans l'environnement SharePoint ? et avez-vous dû redémarrer votre IIS après avoir appliqué les changements ?

3voto

revers Points 31

Pour moi, la mise en place de la uploadReadAheadSize à int.MaxValue a également résolu le problème, après avoir également augmenté les limites sur la liaison WCF.

Il semble que, lors de l'utilisation de SSL, le corps entier de l'entité de la demande soit préchargé, ce pour quoi cette propriété de la métabase est utilisée.

Pour plus d'informations, voir :

La page n'a pas été affichée car l'entité de la requête est trop grande. iis7

1 votes

Votre découverte sur SSL et 'uploadReadAheadSize' est très bonne ! Mais je ne recommande pas de le régler sur la valeur maximale.

3voto

Vladimir Venegas Points 675

Dans mon cas, je recevais ce message d'erreur parce que j'avais changé l'espace de noms du service et que la balise des services pointait vers l'ancien espace de noms. J'ai rafraîchi l'espace de noms et l'erreur a disparu :

<services>
  <service name="My.Namespace.ServiceName"> <!-- Updated name -->
    <endpoint address="" 
              binding="wsHttpBinding" 
              bindingConfiguration="MyBindingConfiguratioName" 
              contract="My.Namespace.Interface" <!-- Updated contract -->
    />
  </service>
</services>

2voto

Riccardo Gozzi Points 31

Pour n'importe qui d'autre jamais recherchant une erreur d'IIS WCF 413 : Request entity to large et utilisant un service WCF dans Sharepoint, voici l'information pour vous. Les paramètres dans l'hôte de l'application et le web.config suggérés dans d'autres sites/posts ne fonctionnent pas dans SharePoint si vous utilisez le MultipleBaseAddressBasicHttpBindingServiceHostFactory. Vous pouvez utiliser SP Powershell pour obtenir le service SPWebService.Content, créer un nouvel objet SPWcvSettings et mettre à jour les paramètres comme ci-dessus pour votre service (ils n'existeront pas). N'oubliez pas d'utiliser le nom du service (par exemple [yourservice.svc]) lorsque vous créez et ajoutez les paramètres. Voir ce site pour plus d'informations https://robertsep.wordpress.com/2010/12/21/set-maximum-upload-filesize-sharepoint-wcf-service

2voto

Han Evers Points 21

Dans mon cas, j'ai dû augmenter la "Taille maximale des messages reçus" de l'emplacement de réception dans BizTalk. La valeur par défaut est également de 64K, ce qui fait que tous les messages étaient renvoyés par BizTalk, indépendamment de ce que j'avais configuré dans mon web.config.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X