私はPDFを表示しようとしているSilverlight 4アプリケーションを持っています。私のアプローチは、Silverlightアプリケーションのボタンをクリックした後、HtmlPage.Window.Navigateを使用して新しいブラウザウィンドウを開きます。この新しいブラウザウィンドウがナビゲートするURLは、SSRS SOAP API経由でSQL Reporting Servicesを呼び出すASP.Net Webフォームページです。 IE9とFirefoxからアプリケーションを実行している場合は、このすべてが非常にうまく機能Silverlightアプリケーションを使用してIE8でPDFを表示する際の問題
byte[] report = SSRSRenderReport(reportPath, primaryId);
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("cache-control", "must-revalidate");
Response.AddHeader("content-length", report.Length.ToString());
Response.Buffer = true;
Response.ContentType = "application/pdf";
this.Response.AddHeader("Content-Disposition", "inline; filename=whatever.pdf");
Response.BinaryWrite(report);
Response.Flush();
Response.End();
:この呼び出しはWebフォームは、次のコードをブラウザにストリームをバイト配列を返します。しかし、IE8からアプリケーションを実行すると、ボタンをクリックした後に新しいブラウザウィンドウが表示されますが、PDFを表示したり、PDFを開く/保存することを知らずにすぐに閉じられます。
Silverlightを画像から取り出して、レポートをレンダリングするURLを直接参照すれば、正常に動作し、PDFがブラウザに表示されます。 HTTPSが使用されているときにこの問題を説明している記事をいくつか見てきましたが、現在はHTTPだけを使用しています。
この問題を回避する方法については、何かアドバイスをいただければ幸いです。