2009-02-26 4 views
1

맞춤 클라이언트 앱에 데이터를 전달하는 웹 앱에서 작업하고 있습니다.WCF 서비스는 어떻게 대량의 데이터를 반환 할 수 있습니까?

데이터가 "작은"크기를 초과하면 예외가 발생합니다. 최종 사용자는 점점 더 큰 데이터 크기를 사용하게 될 것이므로 WCF 함수에서 데이터 세트의 ID로 전환했습니다.

다음으로, 간단한 ASPX 페이지에서 데이터를 검색하기 위해 ID를 사용하도록 클라이언트를 변환했습니다. 이 잘 작동하지만 인터페이스의 불일치를 의미합니다.

  1. 편집 : 어떻게 스트림을 반환하지 못한 것인지 잘 모르겠습니다. WCF를 통해 Streams에 문제가있는 사람 있습니까?

  2. 삭제 된 연결 이외에 ASPX 페이지의 HTTP 스트림을 통해 파일을 읽는 데 문제가 있습니까?

나는 WCF (oob 데이터와 같은)의 기능이 없다고 생각합니다. 그렇지만 C#/NET의 온라인 도움말은 내 컴퓨터에 설치되어있는 것처럼 매우 좋지 않거나 심각하게 손상되었습니다.

감사합니다.

[편집] 내 경우에는 "데이터의 양이 많습니다"는 사용자 입력에 의한 것이지만 적어도 20MiB가되어야합니다.

답변

0

@Eugene이 언급 한 Large Data and Streaming 문서를 이해하는대로 모든 통신에 대해 전송 모드를 전환해야하므로 일부 무결성 검사가 해제됩니다. ,

데이터를
  • 다운로드 사용 ASPX 페이지 (들)을 반환하고 클라이언트 응용 프로그램의 디스크 파일을 스트리밍 :

    따라서, 나는 반 사용자 정의 HTTP 클라이언트 클래스를 사용하여 결국

  • 업로드 GUID를 생성하는 ASPX 페이지로 파일을 보내고 파일을 해당 GUID의 이름으로 서버 디스크에 저장합니다. 그런 다음 은 파일 데이터 대신 GUID가있는 다른 매개 변수를 전달하는 WCF 메서드를 호출합니다.

아름답지는 않지만 작동합니다.유감스럽게도 IIS 또는 클라이언트 응용 프로그램이 손상되면 임시 파일을 서버 하드 드라이브에 남겨 둘 수 있지만 현지화되어 서비스 작성시 으로 정리할 수 있습니다.

0

보고있는 예외는 무엇입니까? 독자 할당량이 초과 되었기 때문에 XML을 읽을 수 있습니까?

그렇다면 문제를 해결할 수 있을지 알고 있습니다. wsHttpBinding 샘플을 보려면 아래를 참조하십시오. 예외가 있으면 어떤 매개 변수를 수정해야하는지 결정하는 데 도움이됩니다. 독자는 maxReceivedMessageSize와 할당량을 사용할 수 있습니다. 이것이 작동하지 않는 경우 알려 주시고 더 많은 데이터를 제공해주십시오.

<wsHttpBinding> 
    <binding name="bindingName" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"> 
     <readerQuotas maxDepth="32" maxStringContentLength="3145728" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
    </binding> 
</wsHttpBinding> 
+0

은 메시지 크기 오버 플로우 예외 시간 초과였다 (상세를 잊었다). 이 데이터를 문자열 (또는 심지어 byte [])로 반환하는 것은 합리적으로 보이지 않습니다. 다른 사람들이 WCF를 통해 "큰"데이터 값을 반환하는 방법을 파악하고 싶었습니다. – NVRAM

+0

그리고 고마워, 귀하의 의견은 내가 핵심 문제 (클라이언트/서버의 메시지 크기가 일치하지 않음)라고 가정 한 내용을 다루지 만 당분간은 그 사실을 알리지 않을 것입니다. – NVRAM

3

Large Data and Streaming을 참조하십시오.

+0

감사합니다. 어제 다음 링크도 찾았습니다. http://stackoverflow.com/questions/323585/wcf-chunking-streaming – NVRAM

관련 문제