2011-09-25 4 views
0

안녕하세요,WCF에서 스트림과 파일 길이를 모두 반환하는 방법 Restful json webservice?

내 WCF 안정적인 json webservice에서 스트림을 반환 할 수 있으며 모든 것이 정상적으로 작동합니다. 그러나 스트림을 다른 데이터 (둘 다 사용자 정의 클래스로 래핑 됨)와 혼합하면 클라이언트에서 웹 서비스를 사용하면 "기존 연결이 원격 호스트에 의해 강제로 닫혔습니다"라는 오류 메시지가 나타납니다.

위의 내용을 어떻게 달성 할 수 있습니까? 내 웹 서비스에 필요한 것은 클라이언트 쪽에서 유효성 검사를위한 추가 정보로 파일 길이를 가진 파일을 다운로드 할 수있게하는 것입니다.

미리 감사드립니다. :)

답변

2

this MDSN link에 따라 Stream을 사용하는 경우 다양한 제한이 있으며 스트리밍하는 동안 하나의 (출력) 매개 변수 또는 반환 값 (유형 스트림의) 만 사용할 수 있습니다.

또 다른 MSDN documentation (이것은 좋은 리소스입니다. WCF를 사용하여 큰 데이터를 스트리밍하려는 경우) 메시지 계약을 사용하여 스트림과 일부 입출력 데이터를 결합 할 수 있다는 암시가 있습니다. 예를 들어, 작성자가 명시 적 메시지 계약을 사용하여 파일 이름 & 파일 데이터를 업로드하는 this blog post을 참조하십시오. 다운로드 관점에서 비슷한 일을해야합니다.

마지막으로 아무 것도 작동하지 않으면 파일 길이를 사용자 지정 (또는 콘텐츠 길이와 같은 표준) HTTP 헤더로 항상 푸시 할 수 있습니다. IIS에서 호스팅하는 경우 ASP.NET 호환성을 사용하고 HttpContext.Current.Response을 사용하여 사용자 지정 헤더를 추가합니다.

관련 문제