Client에서 대량의 List나 이진파일을 WCF로 전송하기 위해서는 Web.Config에 특별한 설정이 필요합니다.
이 문제는 WCF에서 다음과 같이 간단한 설정으로 해결하실 수 있습니다.
<configuration> <system.serviceModel> <bindings> <customBinding> <binding> <httpTransport maxReceivedMessageSize=”409600” />
MSDN의 다음 문서를 확인해보시면 다음과 같은 글을 확인해 보실 수 있습니다.
“악의적인 클라이언트가 메모리를 과도하게 사용하여 서비스에 대한 서비스 거부 공격을 하지 못하도록 기본적으로 65,536바이트로 설정됩니다. 일반적으로 이 값을 낮추면 성능이 향상됩니다.”
이 값이 크면 사용자가 대용량의 데이터를 Server로 전송할 수 있게 되고, 이는 상대적으로 서버가 DDOS(서비스 거부공격)에 쉽게 노출 될 수 있다는 의미입니다. 따라서 이 설정을 높게 잡으실 경우, 연속적인 서비스 호출이나 서버에 과부하를 주는 요청을 보류하거나 거부시키는 방법을 적용하거나, 인증된 사용자만 서비스를 이용하게 함으로서 공격에 대한 취약성을 낮추도록 해야합니다.