Microsoft MVP성태의 닷넷 이야기
basicHttpBinding stream 전송에 관하여 질문드립니다. [링크 복사], [링크+제목 복사],
조회: 15912
글쓴 사람
송준호 (ikinye337 at nate,com)
홈페이지
첨부 파일
 

안녕하세요 wcf 서비스를 구축중인 비루한 개발자입니다. ^^;

다름이 아니라 wcf를 구현중에 난관에 봉착해서 글을 올렸습니다.

많은 도움의 말씀 부탁드리겠습니다.

 

현재 MessageContract로 파일 다운로드를 위해

stream을 Client(wpf) 로 전송 하는 서비스를 만들었습니다.

binding은 basicHttpBinding 이구요 stream 전송에는 이상이 없습니다.

하지만 요구사항중에 파일 다운로드 중 취소를 가능하게 해달라고 해서 취소 기능을 구현했는데,

취소를 시도 할 경우 해당 파일의 stream을 끝까지 읽고 다음 동작이 가능한 현상을 발견했습니다.

(다운로드 받으려는 파일이 크면 클수록 지연시간이 길어지는 현상입니다.)

혹시 좋은 의견 갖고 계시면 말씀해 주시기 바랍니다.

(설정 관련 부분은 거의 기본 설정입니다.)

web.comfig 이구요

 

<basicHttpBinding>
        <binding name="HttpServiceFrontBinding" transferMode="StreamedResponse" />
MessageContract 입니다.

 

 

    [MessageContract]
    [Serializable]
    public class MediaStreamResponse : StreamResponse
    {
        [MessageHeader]
        public long MediaVersion { get; set; }

        [MessageHeader]
        public long StartPosition { get; set; }
    }
 

    [MessageContract]
    public class StreamResponse
    {

        [MessageHeader]
        public long? Length { get; set; }

        [MessageBodyMember]
        public Stream Stream { get; set; }
    }








[최초 등록일: ]
[최종 수정일: 8/11/2012]


비밀번호

댓글 작성자
 



2012-08-12 05시44분
그러니까, 클라이언트 측에서 WCF 메서드 호출로 받은 Stream 개체로 while 문 내에서 Read 메서드를 통해 다운로드를 할 텐데요. 그 와중에 사용자가 취소를 하면 while 문을 벗어나서 WCF Proxy 개체를 닫으면 되는 거 아닌가요? "취소를 시도 할 경우 해당 파일의 stream을 끝까지 읽고 다음 동작이 가능한 현상을 발견했습니다."라고 말씀하신 동작을 좀더 구체적으로 설명해 주시면 제가 답변하기에 더 수월할 것 같습니다. ^^
정성태

... 16  17  18  19  20  21  22  [23]  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5378net9/2/202014722mes 응용프로그램을 .net 웹폼으로 만들기도 하나요? [2]
5377net9/2/202013413.net 사용한 웹폼으로 응용프로그램을 만들경우 [1]
5376영귤9/1/202014367nullable 타입간의 비교연산은 그냥 가능한 건가요? [1]
5375영귤8/30/202016341이벤트와 델리게이트의 차이가 궁금합니다. [2]
5374guest8/27/202018361시작하세요! C# 8.0 프로그래밍 책에 오타가 있습니다. [1]
5373agj8/26/202015400System.Single::ToString()함수의 IL코드를 보았는데 ldnull, throw가 전부입니다. 왜 이렇게 짧죠? [2]
5372민성8/24/202015453안녕하세요 WPF 웹브라우저 컨트롤에서 웹브라우저 자체를 엣지로 할 수가 있나요? [2]
5371서현준8/11/202014030Hyper-V 내부 네트워크 환경 중, VM 에서 인터넷 접속 [1]
5370독자8/11/202012576.net createobject 관련 질문입니다.. [4]
5369독자8/10/202012620c# 8.0 프로그래밍 책에 대한 질문 드립니다 [1]
5368guest8/10/202014911시작하세요! C# 8.0 프로그래밍 책에 오타가 있습니다. [1]
5367박순기8/8/202012880디버깅 시 반전되는 부분 글 색상이나 배경색을 변경하는 방법 [3]파일 다운로드1
5366간절함8/7/202013565하나의 솔루션에서, 32비트 프로젝트에서 다른 64비트 프로젝트 참조하는 방법 궁금합니다. [4]
5365영귤8/6/202012818TimeSpan 구할 때 시간대를 바꿔도 같은 값이 나오는 것 같습니다. [1]
5364박순기8/5/202012989visual studio의 menu bar font size 변경방법 문의 [2]파일 다운로드1
5363클락8/1/202013780c# 9.0 출간 준비 중이신가요? [2]
5361하태7/29/202013245안녕하세요! 바이너리데이터 파싱 질문 드리겠습니다!. [2]
5360진우7/28/202014240엑셀에서 발생하는 모든 이벤트를 감지 할수 있는지 궁금합니다. [6]파일 다운로드1
5358홍길동7/22/202012961개체에서 open 속성이나 매서드가 지원 되지 않읍니다.라고 오류창이 뜨는데. [1]
5357손동섭7/22/202013510책 예제코드... [3]
5355neska7/21/202013376안녕하세요 문의 드립니다 [1]
5354민성7/15/202015320안녕하세요 db연결 문자 보안 [2]
5353형성재7/14/202014036Visual Studio Setup Project에서 VC++2010재배포패키지설치 [4]
5352윤식7/10/202014532닷넷코어 빌드 시 runtimeconfig 파일을 없앨 수 있는지.. [4]
5351runr...7/2/202014244C# 에서 C++ dll 병렬 사용 [1]
5350홍성호6/29/202015831C++에서 정의된 구조체(공유메모리)를 C#으로 공유메모리에서 구조체 변환시 에러가 발생 합니다. [1]파일 다운로드1
... 16  17  18  19  20  21  22  [23]  24  25  26  27  28  29  30  ...