2016-10-14 14 views
0

Failed - Network errorクロームのダウンロードに失敗しました - ネットワークエラー

Chrome Debugger window

スクリーンショット2は、デバッガウィンドウの情報であり、以下のファイルをダウンロードするために使用されるコードは、それは、Visual Studioクロームエミュレータでよく走っていたが、とき私はコードを展開し、動作を停止しました。同じコードが別の場所で使われていて、そのコードがうまく動作していて、なぜこのコードが機能しないのか分かりません。

public ActionResult DownloadFile(decimal document_id) 
    { 
     var DocumentForDownload = riskProfile.GetDocumentForDownload(document_id, isfordownload: true); 
     byte[] byteArray = DocumentForDownload.DOCUMENT; 
     var filename = DocumentForDownload.DOCUMENT_NAME + "." + DocumentForDownload.EXTENSION; 
     string mimeType = "application/" + DocumentForDownload.EXTENSION; 
     System.Web.HttpContext.Current.Response.Clear(); 
     System.Web.HttpContext.Current.Response.ClearContent(); 
     System.Web.HttpContext.Current.Response.ClearHeaders(); 
     System.Web.HttpContext.Current.Response.AddHeader("content-length", byteArray.Length.ToString()); 
     System.Web.HttpContext.Current.Response.ContentType = "application/" + DocumentForDownload.EXTENSION; 
     System.Web.HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + filename); 
     System.Web.HttpContext.Current.Response.Charset = "utf-8"; 
     System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("windows-1250"); 
     System.Web.HttpContext.Current.Response.BinaryWrite(byteArray); 
     System.Web.HttpContext.Current.Response.Flush(); 
     System.Web.HttpContext.Current.Response.OutputStream.Close(); 
     System.Web.HttpContext.Current.Response.End(); 
     System.Web.HttpContext.Current.Response.Close(); 
     return new EmptyResult(); 
    } 
+0

私はビジュアルスタジオのクロムエミュレータでチェックしましたが、ヘッダーにはコンテンツの長さのプロパティが含まれていますが、サーバーにデプロイすると、その理由がわかりません。何か案が? – Yan

答えて

3

は、溶液、転送符号化は、Content-Lengthヘッダをサポートし、私たちはidentityに転送エンコーディングを指定する必要がないchunked、がわかりました。

System.Web.HttpContext.Current.Response.AddHeader("Transfer-Encoding", "identity") 
関連する問題