2013-03-05 2 views
2

우리는 SOAP 서비스로 설정된 WCF 서비스를 만들었습니다. 데이터베이스에서 데이터를 읽고 응답을 어셈블 링하여 클라이언트에 반환합니다. 데이터베이스에서 필요한 모든 데이터를 쿼리하고 전체 응답을 메모리에 어셈블 링하여 클라이언트에 반환하기 때문에 데이터 양이 많은 경우 상당한 메모리 요구 사항이 발생할 수 있습니다.큰 WCF 응답을 처리하는 방법은 무엇입니까?

기본적으로 클라이언트는 크기를 제어 할 수없는 blob을 포함하는 특정 레코드를 데이터베이스에서 요청하고 있습니다. 우리는 데이터의 크기가 10k에서 3MB 정도가 될 것으로 예상합니다. 한 번에 전체 3MB의 메모리를로드 할 필요가 없도록 데이터베이스와 WCF 응답에서 데이터를 스트리밍 할 수있는 기술을 사용할 수 있습니까?

편집 :
원래, 나는이 How to handle large file uploads via WCF?의 중복 될 줄 알았는데,하지만 해결책은 OperationContract를의 매개 변수로 스트림을 사용해야합니다. 필자의 경우 요청한 매개 변수가 복잡한 객체가되어야하지만 결과적으로 서비스의 WSDL에 반영됩니다.

[ServiceContract] 
public interface IFileUpload 
{ 
    [OperationContract] 
    bool UploadFile(Stream stream); 
} 
+0

[가능한 WCF를 통한 대용량 파일 처리 방법] (http://stackoverflow.com/questions/1935040/how-to-handle-large-file-uploads-via-wcf) – Jeremy

답변

0

동기화해야합니까?

나는 article이 눈에 띄었을 것으로 추정합니까? 당신이

0

스트리밍 전송 모드에 특별한주의를 지불해야합니다, 그래서 내가 WCF를 알고

는 WCF와 함께 더 큰 데이터를 처리하기위한 가장 좋은 방법은 버퍼 크기가 까다 롭고이다. msdn에서이 샘플 예제를 살펴보면 시작합니다. WCF Stream Transfer mode

희망이 있습니다.

관련 문제