[WCF] 대용량 데이터를 서버로 전송하기 위해 필요한 설정
2009. 11. 27. 19:07ㆍWEB/WebService
Client에서 대량의 List나 이진파일을 WCF로 전송하기 위해서는 Web.Config에 특별한 설정이 필요합니다.
문제
- 총 92건의 리스트를 WCF로 전송
- 그리고 Exception 발생
해결
이 문제는 WCF에서 다음과 같이 간단한 설정으로 해결하실 수 있습니다.
- WCF의 Web.Config에서 maxRecievedMessageSize를 조정하였습니다.
<configuration> <system.serviceModel> <bindings> <customBinding> <binding> <httpTransport maxReceivedMessageSize=”409600” />
- Client에서 WCF로 파일업로드 처럼 대용량의 데이터를 전송하기 위해서 조정해야하는 값입니다.
- 기본값은 65,536Byte이며 최대 값은 Int32의 양수 최대값인 2,147,483,647까지 설정하실 수 있습니다.
성능
MSDN의 다음 문서를 확인해보시면 다음과 같은 글을 확인해 보실 수 있습니다.
악의적인 클라이언트가 메모리를 과도하게 사용하여 서비스에 대한 서비스 거부 공격을 하지 못하도록 기본적으로 65,536바이트로 설정됩니다. 일반적으로 이 값을 낮추면 성능이 향상됩니다.
이 값이 크면 사용자가 대용량의 데이터를 Server로 전송할 수 있게 되고, 이는 상대적으로 서버가 DDOS(서비스 거부공격)에 쉽게 노출 될 수 있다는 의미입니다. 따라서 이 설정을 높게 잡으실 경우, 연속적인 서비스 호출이나 서버에 과부하를 주는 요청을 보류하거나 거부시키는 방법을 적용하거나, 인증된 사용자만 서비스를 이용하게 함으로서 공격에 대한 취약성을 낮추도록 해야합니다.
'WEB > WebService' 카테고리의 다른 글
[WCF-Rest] WCF-Rest를 이용한 동기식 SOAP Receiver (0) | 2009.12.04 |
---|---|
[WCF] WCF-Rest를 이용한 SOAP Receiver (0) | 2009.11.30 |
[WCF] Global Level에서 Exception 처리 또는 기록 (0) | 2009.11.22 |