파일을 다운로드하기 위해 업데이터 서비스와 통신하는 클라이언트 응용 프로그램이 있습니다. 업데이터 서비스는 데이터베이스에서 가져온 다음 WCF를 사용하여 클라이언트에 보냅니다. 지금은 보안을 활용할 수 있도록 WSHttpBinding을 사용하고 있습니다. 그래서 내가 다운로드/전송 한 가장 큰 파일은 약 8 MB이며 이것은 정상적으로 작동합니다. 나는 최근에 약 130 MB였던 파일로 시도했지만 클라이언트에서는 아무 것도 일어나지 않았다. 네트워크 사용량이 0 %에 불과했습니다.스트리밍을 사용하기 전에 WCF에서 몇 바이트를 전송 했습니까?
파일이 너무 커서 스트리밍없이 전송할 수 없다고 가정합니다 (maxReceivedMessageSize 등은 209715200과 동일하므로 설정이 올바른 것으로 알고 있음). 이 문제를 해결하려면 특정 크기보다 큰 파일을 스트리밍 할 수 있도록 서비스에서 BasicHttpBinding을 사용하도록하고 싶습니다.
제 질문은 WSHttpBinding에서 BasicHttpBinding 및 스트리밍으로 전환해야하는 파일 크기입니다. 사람이 따라야 할 표준이 있습니까? 또는 내 논리가 완전히 잘못 되었습니까?
그래도 서비스가 모든 발신자에 대해 내 SQL 데이터베이스에서 파일을 가져 오는 중이므로 스트리밍을하더라도 여전히 각 발신자 (20 명의 발신자 = 여전히 2GM RAM)의 전체 100MB 파일이 필요하지 않습니까? WCF 서비스를 메모리에서 전체 파일을 실제로 필요로하지 않고 데이터베이스에서 클라이언트로 "브리지"로 사용할 수있는 방법이 있습니까? 아니면 어떻게 든 모든 사본을 수신 할 때까지 메모리에 사본 한 부를 가져 와서 보관할 수 있습니까? – Marcus