我有一个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。
有关如何解决此问题的任何建议将不胜感激。