2017-06-19 74 views
0

我正在嘗試從WebAPI Rest服務中讀取並返回文件內容,我正在返回使用..塊內的響應。我得到System.ObjectDisposedException。有人可以幫我弄這個嗎?無法訪問已關閉的文件System.ObjectDisposedException

using (var fileStream = new FileStream(LocalFilePath, FileMode.Open)) 
      { 
       response.Content = new StreamContent(fileStream); 
       response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "MaxRecords.xls" }; 
       response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-excel"); 
       return response; 
      } 
+1

不要使用「使用」塊嗎? – Evk

+0

它工作如果你刪除使用塊? 'response.Content'引用了一個被放置的實例('fileStream')。 –

+0

@DaveBecker是的,它使用塊刪除後工作..但我想用塊來處理文件流:( –

回答

0

您需要創建一個流推送對象,根據需要在文件上生成文件位。我自己創建了一個,但我知道這些日子裏有一個 - 稱爲PushStreamContent。這是一個非常簡單的例子,does something similar到你需要的。

問題是,客戶端需要關閉流,或者在寫入所有字節時PushStreamContent需要關閉它,但是使用using塊時,您將在發送時立即關閉它。

相關問題