これが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を強制的にダウンロードするものです。この問題の理想的な解決策ではありません。誰かが別の考えを持っていることを願っています。