2016-11-24 4 views
0

ユーザーはpdfをダウンロードできる.netアプリケーションを継承しました。今、ローカルで実行するとpdfファイルをダウンロードできますが、IISサーバーに展開すると問題が発生します。ダウンロードはFirefox上で動作しますが、Chromeで動作しません。また、IEで動作することもあります。私のローカル開発環境でダウンロードできるという事実は、それがIIS構成のものか私のコードの何かである可能性があることを示しています。 pdfは、varbinaryというms sql server 2012テーブルに格納されています。データを読み取るために使用される以下のコードをいくつか提供しました。必要な情報が他にある場合はお知らせください。また、iisログをチェックして、すべてのステータスコードが200になっています。そこに何も目立たない。失敗ネットワークエラーiisを使用してPDFをダウンロード

if(Session["DetailID"] != null) 
{ 
    //get the file 
    DataTable dt = sp_Attachment_Download(lblAttachmentIDD.Text); 
    DataRow row = dt.Rows[0]; 

    string name = (string)row["AFileName"]; 
    string contentType = (string)row["AFileType"]; 
    Byte[] data = (Byte[])row["AFile"]; 

    /// Send the file to the browser 
    Response.AddHeader("Content-type", contentType); 
    Response.AddHeader("Content-Disposition", "attachment; filename=" + name); 
    Response.BinaryWrite(data); 
    Response.Flush(); 
    Response.Close(); 
} 

EDITED ---------- 私はIEとChromeのための開発ツールを使用して何か面白いものを見つけています。 Chromeは、私がリンクをクリックしたとき、私に次のエラーを与える:私の注意を引いた

interpreted as Document but transferred with MIME type application/pdf: 

IEのdoesntエラーが、何かを与えます。私のREQUESTヘッダー、ACCEPTにはapplication/pdfがなく、RESPONSE Con​​tent-Typeにはapplication/pdfがあります。これは何か? aspxページにapplication/pdfを含めるようにACCEPTを設定するにはどうすればよいですか?

+0

私も同様の問題が発生しました。ダウンロードはChromeでメッセージ に失敗しました - ネットワークエラーです。しかし、問題はプロトコルにあり、FirefoxはHTTP/1.1を使用していましたが、ChromeはHTTP/2を使用していたことに気づきました。あなたはこれを観察しましたか? – KiKMak

答えて

0

私の場合のようにchromeからpdfをダウンロードするときに似たような問題がありましたが、ファイル名にカンマがあり、そのクロムが好きではないと思われたので、ファイル名からカンマを削除しました。 PS:Response.Close()を使用しないでください。スレッドを打ち切り、例外をスローします。

+0

それは仕事をしませんでした。それでも同じエラーが発生しました。ありがとう。 –

0

多分、これは私のコードが同じことをするのに役立ちます。私が気づいたことの1つは、ファイルの長さを指定していないことです。これは必要と思われます。 pFileDataは、FileName、文字列、FileData、byte []を含むクラスです。

関連する問題