A cota máxima de tamanho de mensagem para mensagens recebidas (65536) foi ultrapassada. Para aumentar a cota, use a propriedade MaxReceivedMessageSize no elemento de vinculação apropriado.
Ao usar o WCF, encontro os seguintes problemas:
A cota máxima de tamanho de mensagem para mensagens recebidas (65536) foi ultrapassada. Para aumentar a cota, use a propriedade MaxReceivedMessageSize no elemento de vinculação apropriado.
Descrição do problema:
Quando o cliente chama WCF e retorna uma grande quantidade de dados, não há problema com a LAN (o cliente encontrou um problema com uma máquina no local, o motivo específico é desconhecido). Há um problema em postar na extranet.
A informação de exceção que o VS2012 Debug detecta é: Um erro estava ocorrendo durante a transferência de dados por um canal HTTP (os dados não podiam ser lidos da conexão de transporte: a conexão estava fechada. )。
A exceção retornada pela ferramenta WCFStorm é: A cota máxima de tamanho de mensagem para mensagens recebidas (65536) foi ultrapassada. Para aumentar a cota, use a propriedade MaxReceivedMessageSize no elemento de vinculação apropriado.
Antes do erro, tanto o servidor quanto o cliente haviam adicionado as seguintes configurações:
Adicione o seguinte código no lado do servidor para resolver o problema:
Espero que isso possa resolver quem está passando pelo mesmo problema.
Outras soluções:
Após ler o post de @sunny007sun http://bbs.csdn.net/topics/360255080, uma solução foi encontrada http://www.cnblogs.com/happyhippy/archive/2011/07/02/2096482.html seu registro (blog). O web.config gerado automaticamente pelo Silverlight não possui informações de configuração para serviços e precisa ser adicionado aqui <services> <behavior do serviçoConfiguração="MeuComportamento" nome="WcfService1.Service1"> <endereço de endpoint="" binding="basicHttpBinding" bindingConfiguration="NewBinding0" contract="WcfService1.IService1" /> <endereço de endpoint="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> De fato, ainda existe uma diferença entre service.name e endpoint.contract, contrato é um protocolo correspondente ao ServiceContract sob o projeto WCF, ou seja, a interface IService1, e serviço corresponde à chamada específica de svc, ou seja, Service1.
Até agora, o problema foi resolvido, obrigado @sunny007sun pelos 11 anos postando e escrevendo no blog.
|