Le quota maximal de taille des messages pour les messages entrants (65536) a été dépassé. Pour augmenter le quota, utilisez la propriété MaxReceivedMessageSize sur l’élément de liaison approprié.
En utilisant la WCF, je rencontre les problèmes suivants :
Le quota maximal de taille des messages pour les messages entrants (65536) a été dépassé. Pour augmenter le quota, utilisez la propriété MaxReceivedMessageSize sur l’élément de liaison approprié.
Description du problème :
Lorsque le client appelle WCF et renvoie une grande quantité de données, il n’y a aucun problème avec le réseau local (le client a trouvé un problème avec une machine sur site, la raison précise est inconnue). Il y a un problème avec la publication sur l’extranet.
L’information d’exception détectée par VS2012 Debug est la suivante : une erreur survenait lors du transfert de données via un canal HTTP (les données ne pouvaient pas être lues depuis la connexion de transport : la connexion était fermée. )。
L’exception retournée par l’outil WCFStorm est la suivante : Le quota maximal de taille des messages pour les messages entrants (65536) a été dépassé. Pour augmenter le quota, utilisez la propriété MaxReceivedMessageSize sur l’élément de liaison approprié.
Avant l’erreur, le serveur et le client avaient tous deux ajouté les paramètres suivants :
Ajoutez le code suivant côté serveur pour résoudre le problème :
J’espère que cela pourra résoudre ceux qui rencontrent le même problème.
Autres solutions :
Après avoir lu le billet de @sunny007sun http://bbs.csdn.net/topics/360255080, une solution a été trouvée http://www.cnblogs.com/happyhippy/archive/2011/07/02/2096482.html son dossier (blog). Le site web.config généré automatiquement par Silverlight ne contient pas d’informations de configuration pour les services et doit être ajouté ici <services> <service behaviorConfiguration="MyBehavior » nom="WcfService1.Service1"> <adresse terminale=" » binding="basicHttpBinding » bindingConfiguration="NewBinding0 » contract="WcfService1.IService1 » /> <adresse de terminaison="mex » binding="mexHttpBinding » contract="IMetadataExchange » /> </service> </services> En fait, il existe encore une différence entre service.name et endpoint.contract, contract est un protocole correspondant au ServiceContract dans le cadre du projet WCF, c’est-à-dire l’interface IService1, et service correspond à l’appel spécifique de svc, c’est-à-dire Service1.
Jusqu’à présent, le problème a été résolu, merci @sunny007sun pour ces 11 années de publication et de blogging.
|