La quota massima di dimensione dei messaggi per i messaggi in arrivo (65536) è stata superata. Per aumentare la quota, usa la proprietà MaxReceivedMessageSize sull'elemento di binding appropriato.
Usando WCF, incontro i seguenti problemi:
La quota massima di dimensione dei messaggi per i messaggi in arrivo (65536) è stata superata. Per aumentare la quota, usa la proprietà MaxReceivedMessageSize sull'elemento di binding appropriato.
Descrizione del problema:
Quando il client chiama WCF e restituisce una grande quantità di dati, non c'è alcun problema con la LAN (il cliente ha riscontrato un problema con una macchina in loco, la ragione specifica è sconosciuta). C'è un problema nel pubblicare sull'extranet.
L'informazione di eccezione che VS2012 Debug rileva è: Si verificava un errore durante il trasferimento di dati su un canale HTTP (i dati non potevano essere letti dalla connessione di trasporto: la connessione era chiusa. )。
L'eccezione restituita dallo strumento WCFStorm è: La quota massima di dimensione dei messaggi per i messaggi in arrivo (65536) è stata superata. Per aumentare la quota, usa la proprietà MaxReceivedMessageSize sull'elemento di binding appropriato.
Prima dell'errore, sia il server che il client avevano aggiunto le seguenti impostazioni:
Aggiungi il seguente codice lato server per risolvere il problema:
Spero possa risolvere te che stai vivendo lo stesso problema.
Altre soluzioni:
Dopo aver letto il post di @sunny007sun http://bbs.csdn.net/topics/360255080, è stata trovata una soluzione http://www.cnblogs.com/happyhippy/archive/2011/07/02/2096482.html suo record (blog). Il web.config generato automaticamente da Silverlight non contiene informazioni di configurazione per i servizi e deve essere aggiunto qui <services> <service behaviorConfiguration="MyBehavior" name="WcfService1.Service1"> <indirizzo endpoint="" binding="basicHttpBinding" bindingConfiguration="NewBinding0" contract="WcfService1.IService1" /> <indirizzo endpoint="mex" binding="mexHttpBinding" contratto="IMetadataExchange" /> </service> </services> In effetti, esiste ancora una differenza tra service.name e endpoint.contract, contract è un protocollo corrispondente al ServiceContract sotto il progetto WCF, cioè l'interfaccia IService1, e service corrisponde alla chiamata specifica di svc, cioè Service1.
Finora il problema è stato risolto, grazie @sunny007sun per questi 11 anni di post e blogging.
|