1

これがIISの問題なのか、コードの問題なのかを特定しようとしています。前者に傾倒していますが、その場合の修正方法がわかりません。

PDFをMemoryStreamとして作成し(iTextSharpを使用)、MemoryStream.ToArrayメソッドを使用してPDFを画面に表示するAsp.NetWebアプリケーションがいくつかあります。以下は私が使用する基本的なコードです。

Try 
    Dim m As System.IO.MemoryStream = pdfhelper.createFileMethod(filename)
    Dim data As Byte() = m.ToArray  
    Response.Clear()
    Response.Buffer = True
    Response.AddHeader("Content-Length", data.Length.ToString())
    Response.AddHeader("Content-Disposition", "inline; filename=sample")
    Response.AddHeader("Expires", "0")
    Response.AddHeader("Pragma", "cache")
    Response.AddHeader("Cache-Control", "private")
    Response.ContentType = "application/pdf"
    Response.AddHeader("Accept-Ranges", "bytes")
    Response.BinaryWrite(data)
    Response.Flush()
    Response.End()
Catch ex As Exception
    throw ex
End Try

私は、Windows Server 2008 R2 Standard Edition、64ビット、バージョン6.1ビルド7601 ServicePack1とIIS7.5.7600.16385からサービスを提供しています。

Internet Explorerでアプリケーションを使用すると、PDFドキュメントを開くのに問題はありません。ChromeまたはFirefoxを使用すると、読み込み中にPDFがハングするだけです。単にロードされません。エラーメッセージが表示されません。サーバーで実行してもクライアントで実行しても、問題は同じです。

ただし、Visual Studioに組み込まれているIISを使用して開発ボックスで実行すると、ブラウザーに関係なく問題はありません。

この修正プログラムで対処されている問題を認識しています。 したがって、問題はIISにあると思いました。ただし、修正プログラムは自分のバージョンのWindowsのビルド7600でのみ有効であるため、適用できません。

では、疑問に戻ります。これはIISですか?これは私のコードであり、IEが私が作成しているエラーをより許容しているというだけですか?そして、どうすれば修正できますか?

あなたが与えることができるどんな考えにも感謝します。

編集:私はこの提案を見つけました。これは、ブラウザで開くのではなく、PDFを強制的にダウンロードするものです。この問題の理想的な解決策ではありません。誰かが別の考えを持っていることを願っています。

4

1 に答える 1

0

私はこれを最終的に解決しましたが、100%「理由」はありません。

1)コードビハインドを次のように変更し、バッファを待機してから応答を終了するコマンドを削除しました。

    Response.ClearContent()
    Response.ClearHeaders()
    Response.ContentType = "application/pdf" 
    Response.AppendHeader("Content-Length", data.Length.ToString())
    Response.AppendHeader("Content-Disposition", "inline; filename=" + "Sample.pdf")
    Response.AppendHeader("Accept-Ranges", "bytes")
    Response.BinaryWrite(data)

2)これがコードビハインドであるaspxページを更新しました。それはまだすべてのhtml「もの」を持っていました。ページディレクティブコマンドを除いて、ページ上のすべてを削除しました。

この時点で、PDFは引き続きIEで機能します。古い(9.x)Adobeプラグインを搭載した一部のコンピューターでは、Firefoxはブラウザーで問題なく表示されます。Adobe 10.1.3を搭載したコンピューターでは、Firefoxは「開くか保存する」ダイアログを表示します。しかし、Chrome(v。19.0.1084.56)はまだハングしています。

3)iPadでSafariを使用してテストし、問題がなかった後、Chromeの問題であると判断しました。Chrome Adob​​eプラグインを無効にすると、期待どおりにPDFがブラウザに表示されます。

于 2012-06-17T14:57:54.793 に答える