Monday, April 29, 2013

Erreur 400 Bad Request lors d'un appel de service WCF avec tranfert de fichier

System.ServiceModel.CommunicationException : Une erreur s’est produite lors de la réception de la réponse HTTP 

La raison peut en être que la liaison de point de terminaison de service n’utilise pas le protocole HTTP. Cela peut également être dû au fait qu’un contexte de demande HTTP a été ignoré par le serveur (peut-être à cause de l’arrêt du service).
Pour plus d’informations, voir les journaux du serveur.
  ----> System.Net.WebException : La connexion sous-jacente a été fermée : Une erreur inattendue s'est produite lors de la réception.
  ----> System.IO.IOException : Impossible de lire les données de la connexion de transport : Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte.
  ----> System.Net.Sockets.SocketException : Une connexion établie a été abandonnée par un logiciel de votre ordinateur hôte

Pour permettre l'appel avec un fichier volumineux, configurer dans le web.config, la taille de la requête HTTP 

<configuration .........>
 <system.web>
<!--
 <httpRuntime maxRequestLength="10240"/> (<= pour 10Mo)
 La valeur doit être comprise dans la plage 0-2097151
-->
    <httpRuntime maxRequestLength="2097151" />
  </system.web>
</configuration>