我有一個Silverlight 4應用程序,我試圖顯示PDF。我的方法是在Silverlight應用程序中單擊按鈕,使用HtmlPage.Window.Navigate打開一個新的瀏覽器窗口。該新瀏覽器窗口導航到的URL是一個ASP.Net Web窗體頁面,通過SSRS SOAP API調用SQL Reporting Services。這個調用返回一個字節數組,Web表單,然後用下面的代碼流回到瀏覽器:通過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();
這所有正在運行的IE9從和Firefox的應用程序時,工作得很好。但是,當從IE8運行應用程序時,新的瀏覽器窗口會在按鈕點擊後顯示,然後立即關閉,而不會顯示PDF或提示打開/保存PDF。
如果我將Silverlight從圖片中取出並直接瀏覽呈現報表的URL,那麼它可以正常工作,PDF將顯示在瀏覽器中。我在使用HTTPS時看到了幾篇描述這個問題的文章,但是我現在只使用HTTP。
有關如何解決此問題的任何建議將不勝感激。