2014-01-23 10 views
0

나는 (StackOverflow에서도) 내 문제에 대한 해결책을 찾기 위해 하루 종일 빈을 찾았지만 unforntunately 아무것도 작동하지 않았다. 여전히 오류가 발생합니다 :수신 메시지 (65536)의 최대 메시지 크기 할당량이 초과되었습니다. Silverlight + WCF

"들어오는 메시지의 최대 메시지 크기 할당량 (65536)이 초과되었습니다. 할당량을 늘리려면 해당 바인딩 요소에서 MaxReceivedMessageSize 속성을 사용하십시오."

솔루션에는 수백 가지가 있지만 프로젝트에는 .config 파일이 있습니다. 나는 WCF 서비스와 실버 라이트 클라이언트를 가지고있다. 이들 간의 바인딩은 프로그래밍 방식으로 만 설정됩니다. 여기

는 WCF 서비스 구성에 대한 청크 코드입니다 :

이 이
private BasicHttpBinding GetBinding() 
    { 
     var securityMode = GetSecurityMode(); 
     var binding = new BasicHttpBinding(securityMode) 
     { 
      SendTimeout = TimeSpan.FromMinutes(10), 
      OpenTimeout = TimeSpan.FromMinutes(10), 
      CloseTimeout = TimeSpan.FromMinutes(10), 
      ReceiveTimeout = TimeSpan.FromMinutes(10), 
      TextEncoding = Encoding.UTF8, 
      TransferMode = TransferMode.Buffered, 
      MaxReceivedMessageSize = int.MaxValue, 
      MaxBufferSize = int.MaxValue, 
     }; 

     return binding; 
    } 
이 이 가 아무리 내가 열심히는 MaxReceivedMessageSize로 설정되지

: 클라이언트 엔드 포인트의 실버 라이트 프로젝트 구성에서

private ServiceHostBase CreateService(Uri baseAddress) 
    { 
     var serviceHost = new ServiceHost(typeof(MyService), new[] { baseAddress }); 
     var endPointWithoutSSL = new BasicHttpBinding() 
     { 
      MaxBufferSize = int.MaxValue, 
      MaxReceivedMessageSize = int.MaxValue, 
      MaxBufferPoolSize = int.MaxValue, 
     }; 

     serviceHost.AddServiceEndpoint(typeof(MyService), endPointWithoutSSL,          baseAddress.ToString()); 
     return serviceHost; 
    } 

은 다음과 같습니다

클라이언트 쪽에서 65k. Microsoft WCF 추적 도구는 최대 수신 메시지 크기를 초과하는 것에 대한 예외를 throw 한 후이를 보여줍니다.

더 흥미로운 점은 끝점에서 BasicHttpSecurityMode.Transport를 사용하더라도이 오류가 발생하지 않는다는 것입니다. 그러나 BasicHttpSecurityMode.Transport 옵션없이 내 끝점을 설정해야합니다.

도움을 주시면 감사하겠습니다.

감사합니다.

+0

클라이언트를 구성 할 때이 바인딩을 사용 하시겠습니까? 프록시 작성 방법을 보여줄 수 있습니까? –

답변

1

WCF 쪽에서 아래 코드를 시도해보십시오.

private ServiceHostBase CreateService(Uri baseAddress) 
    { 
     var serviceHost = new ServiceHost(typeof(MyService), new[] { baseAddress }); 
     var endPointWithoutSSL = new BasicHttpBinding() 
     { 
      MaxBufferSize = int.MaxValue, 
      MaxReceivedMessageSize = int.MaxValue, 
      MaxBufferPoolSize = int.MaxValue, 
     }; 

     endPointWithoutSSL.ReaderQuotas.MaxStringContentLength = int.MaxValue; 
     endPointWithoutSSL.ReaderQuotas.MaxNameTableCharCount = int.MaxValue; 
     endPointWithoutSSL.ReaderQuotas.MaxDepth = int.MaxValue; 
     endPointWithoutSSL.ReaderQuotas.MaxBytesPerRead = int.MaxValue; 
     endPointWithoutSSL.ReaderQuotas.MaxArrayLength = int.MaxValue; 

     serviceHost.AddServiceEndpoint(typeof(MyService), endPointWithoutSSL, baseAddress.ToString()); 
     return serviceHost; 
    } 
+0

불행히도 문제는 여전히 정확히 같은 메시지와 함께 발생합니다 ... – Yeti