2014-09-21 2 views
0

WCF 웹 서비스에서 OneDrive의 REST API를 사용하고 있습니다. 모든 것이 잘 작동하지만 파일 다운로드가 가능합니다. 다운로드 된 파일의 Stream 객체를 가져와야하지만 MemoryStream 클래스는 ReadTimeout 및 WriteTimeout에 대한 예외를 제공합니다. 나는 스트림 ReadTimeout 및 WriteTimeout들이이 스트림 지원되지 않습니다한다는 필드에 MemoryStream을 던져 2 예외 객체 생성 할 때 그래서OneDrive REST API 다운로드 파일

.... some code .... 
var rClient = new RestClient("https://apis.live.net/v5.0/"); 
var rRequest = new RestRequest(rootFile.id + "/content", Method.GET); 
rRequest.AddParameter("access_token", data.accessToken); 
var rResponse = rClient.Execute(rRequest); // THE RESPONSE IS OK 
byte[] array = rResponse.RawBytes; 
Stream stream = new MemoryStream(array); // PROBLEM HERE! 
return stream; 

: 이것은 코드입니다. 어떻게 해결 해야할지 모르겠다.

+0

아니, 아무 의미가 수정되었습니다. 예외의 전체 스택 트레이스가 없으면 질문에 대한 답을 얻을 수 없습니다. 항상 예외를 잡아 예외 헬퍼 대화 상자의 "클립 보드에 예외 세부 정보 복사"링크를 사용하거나 예외 ***에 ToString()을 호출하고 해당 텍스트를 질문에 포함하십시오. ***. 예외는 무엇이 어디서 잘못 될지 알려주고 종종 해결책을 알려줍니다. – Will

+0

윌 감사합니다! 예외가 던져진 곳에 대해 내가 틀렸어. – Cardella

+0

아래에 답변을 추가하십시오 (예외의 실제 지점에서 코드를 조금 붙여 넣습니다). 올바른 것으로 선택하고 이것을 닫을 수 있습니다 (새 계정에 해를 끼치 지 않고 - 읽음 [meta]의 자동 계정 질문 차단) – Will

답변

0

코멘트에서 Will이 제안한 것처럼 ReadTimeout 및 WriteTimeout의 예외가 실제 문제가 아니라는 것을 발견했다. 예외는 위에 게시 된 코드 뒤에 호출자 메서드의 null 객체에 의해 발생되었습니다. 아래에는 예외가 발생하는 지점이 있습니다. 현재 개체가 null입니다.

stream = client.DownloadFile(token); 
if (stream != null) 
{ 
    **WebOperationContext.Current.OutgoingResponse.ContentType = "text/octet-stream";** //HERE 
    return stream; 
} 

나는 라인을 제거하고 모든

관련 문제