La taille maximale de la requête qu'un service WCF peut traiter est contrôlée par la propriété MaxReceivedMessageSize sur la liaison WCF. La valeur par défaut est 65536, dépassant le code de réponse 400.
Dans le fichier web.config du site Web hébergeant le service, ajoutez le nœud suivant dans la section.
<system.serviceModel>
<services>
<!-- The name of the service -->
<service name="NorthwindService">
<!-- you can leave the address blank or specify your end point URI -->
<endpoint address ="YourServiceEndpoint"
binding="webHttpBinding" bindingConfiguration="higherMessageSize"
contract ="System.Data.Services.IRequestHandler">
</endpoint>
</service>
</services>
<bindings>
<webHttpBinding>
<!-- configure the maxReceivedMessageSize value to suit the max size of
the request (in bytes) you want the service to recieve-->
<binding name="higherMessageSize" maxReceivedMessageSize ="MaxMessageSize"/>
</webHttpBinding>
</bindings>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
</system.serviceModel>
Si hébergé sur IIS, la restriction de la taille requise ASP.Net peut également causer une grande demande à être rejetée, vous devrez définir la propriété HttpRuntimeSection.MaxRequestLength. Identifiez si WCF lève une exception sous les couvertures qui ne vous sont pas adressées au niveau HTTP. Vous pouvez configure WCF tracing on the server-side pour enregistrer les informations nécessaires à partir de la couche WCF. Une fois que vous avez configuré le suivi et que vous avez reproduit l'échec, vérifiez si le journal contient un ou les deux messages d'exception.
System.ServiceModel.ProtocolException
"The maximum message size quota for incoming messages (65536) has been exceeded.
To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element."
System.Web.HttpException
"Maximum request length exceeded."
Si vous voyez que le journal ne contient ce message, vous pouvez être sûr que l'échec est à cause de la taille du message et appliquer ce correctif en conséquence. N'oubliez pas que votre formulaire doit utiliser la méthode "POST"
.
Où avez-vous modifié le MaxReceivedMessageSize? – cmsjr
Je l'ai augmenté dans le web.config sur les côtés du client (page Web) et du serveur (services de données) – ChrisHDog
Chris - Toutes les entrées sur cette question ici - http://stackoverflow.com/questions/1702717/ado-net -data-services-uploading-fichiers – MOZILLA