Die maximale Nachrichtengrößenquote für eingehende Nachrichten (65536) wurde überschritten. Um die Quote zu erhöhen, verwenden Sie die MaxReceivedMessageSize-Eigenschaft auf dem entsprechenden Bindungselement.
Bei der Nutzung von WCF stoße ich auf folgende Probleme:
Die maximale Nachrichtengrößenquote für eingehende Nachrichten (65536) wurde überschritten. Um die Quote zu erhöhen, verwenden Sie die MaxReceivedMessageSize-Eigenschaft auf dem entsprechenden Bindungselement.
Problembeschreibung:
Wenn der Client WCF anruft und eine große Datenmenge zurückgibt, gibt es kein Problem mit dem LAN (der Kunde hat ein Problem mit einer Maschine vor Ort festgestellt, der genaue Grund ist unbekannt). Es gibt ein Problem beim Posten im Extranet.
Die Ausnahmeinformation, die VS2012 Debug erkennt, lautet: Ein Fehler trat beim Datentransfer über einen HTTP-Kanal auf (Daten konnten nicht von der Transportverbindung gelesen werden: die Verbindung war geschlossen. )。
Die vom WCFStorm-Tool zurückgegebene Ausnahme lautet: Die maximale Nachrichtengrößenquote für eingehende Nachrichten (65536) wurde überschritten. Um die Quote zu erhöhen, verwenden Sie die MaxReceivedMessageSize-Eigenschaft auf dem entsprechenden Bindungselement.
Vor dem Fehler hatten sowohl der Server als auch der Client folgende Einstellungen hinzugefügt:
Fügen Sie den folgenden Code auf der Serverseite hinzu, um das Problem zu lösen:
Ich hoffe, es kann dich lösen, die dasselbe Problem haben.
Weitere Lösungen:
Nachdem ich @sunny007sun Beitrag http://bbs.csdn.net/topics/360255080 gelesen hatte, wurde eine Lösung http://www.cnblogs.com/happyhippy/archive/2011/07/02/2096482.html seinem Rekord (Blog) gefunden. Die von Silverlight automatisch generierte web.config enthält keine Konfigurationsinformationen für Services und muss hier hinzugefügt werden <services> <Service BehaviourConfiguration="MyBehavior" name="WcfService1.Service1"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="NewBinding0" contract="WcfService1.IService1" /> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> Tatsächlich gibt es immer noch einen Unterschied zwischen service.name und endpoint.contract: Contract ist ein Protokoll, das dem ServiceContract im WCF-Projekt entspricht, also der Schnittstelle IService1, und Service entspricht dem spezifischen Aufruf von svc, also Service1.
Bisher ist das Problem gelöst, danke @sunny007sun für die 11 Jahre des Postens und Bloggens.
|