Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ReportViewer IE 11_C#_Asp.net_Reportviewer_Internet Explorer 11 - Fatal编程技术网

C# ReportViewer IE 11

C# ReportViewer IE 11,c#,asp.net,reportviewer,internet-explorer-11,C#,Asp.net,Reportviewer,Internet Explorer 11,我的3.5 framework webforms站点上有一个显示报告的页面。 它正在使用报表查看器10.0.0.0。除了IE11之外,每个浏览器都会显示报告。 只有以文档类型格式显示信息的报表才会呈现为html表并存储在.rdl文件中。参数框会加载,但当选择并运行报告时,我只会得到加载gif,它会超时。我试着用IE11开发工具进行故障排除,它们在打开时超时,这是一场完美的风暴。另外一点信息是,我在VS2012和IE11中本地运行该网站,但它不在IIS7服务器上呈现 我尝试了一个自定义的.brow

我的3.5 framework webforms站点上有一个显示报告的页面。 它正在使用报表查看器10.0.0.0。除了IE11之外,每个浏览器都会显示报告。 只有以文档类型格式显示信息的报表才会呈现为html表并存储在.rdl文件中。参数框会加载,但当选择并运行报告时,我只会得到加载gif,它会超时。我试着用IE11开发工具进行故障排除,它们在打开时超时,这是一场完美的风暴。另外一点信息是,我在VS2012和IE11中本地运行该网站,但它不在IIS7服务器上呈现

我尝试了一个自定义的.browser文件来模拟IE10,但没有成功。任何帮助都将被感激,或者可能

更新:我在服务器日志中发现异常。HttpHandlerInputException,缺少URL参数:IterationId


提前感谢。

在评论中列出的url上找到了它。我真不敢相信,当微软推出一款新浏览器时,他们并没有像我们一样进行测试,这有多糟糕

void Application_BeginRequest(object sender, EventArgs e)
{
    // Bug fix for MS SSRS Blank.gif 500 server error missing parameter IterationId
    // https://connect.microsoft.com/VisualStudio/feedback/details/556989/
    if (HttpContext.Current.Request.Url.PathAndQuery.StartsWith("/Reserved.ReportViewerWebControl.axd") &&
     !String.IsNullOrEmpty(HttpContext.Current.Request.QueryString["ResourceStreamID"]) &&
        HttpContext.Current.Request.QueryString["ResourceStreamID"].ToLower().Equals("blank.gif"))
    {
        Context.RewritePath(String.Concat(HttpContext.Current.Request.Url.PathAndQuery, "&IterationId=0"));
    }
}

我对ReportViewer 10和IE11也有问题

升级到ReportViewer 11(Sql Server 2012)解决了我的问题

  • 下载并安装MICROSOFT®REPORT VIEWER 2012运行时:

  • 转到GAC文件夹: C:\Windows\assembly\gac\msil

  • 查找刚刚安装的Microsoft.ReportViewer DLL

  • 将Microsoft.ReportViewer.Common.dll和Microsoft.ReportViewer.webForms.dll复制到本地web文件夹

  • 在解决方案引用中,删除对旧ReportViewer版本的所有旧引用,删除web.config和其他文件中的引用,并从工具箱中删除控件

  • 添加新的(通用和webforms)dll引用

  • 将其属性设置为“复制到本地”(复制到bin文件夹)

  • 右键单击工具箱并添加ReportViewer 11控件(添加Microsoft.ReportViewer.webForms.dll引用)

  • 将控件放到页面上

  • 这将在web配置文件和页面文件上添加引用。 在组件中:

    <add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
    <add assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
    
    
    
  • 您还需要在web.config文件中添加2个额外条目:

在配置下,system.web,httphandlers:

<add verb="*" path="Reserved.ReportViewerWebControl.axd" type = "Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />

在配置下的system.webserver中,处理程序:

<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />

注: 这对我来说很有效,没有在应用程序_BeginRequest方法中添加任何内容。 此外,我尝试了使用和不使用兼容元标记,它在两种方式下都起作用


维京本的回答也是我回答的基础,但我想为我们这些无法轻松更改global.asax c.q.应用程序BeginRequest的人提供一个利用IIS重写规则的解决方案。这是我的规则:


这就是它的作用。它查找所有URL:

  • 匹配查找ReportViewer axd的特定正则表达式;而且
  • 查询字符串包含“ResourceStreamID=Blank.gif”;而且
  • 查询字符串不包含“IterationId=0”
  • 对于任何匹配,浏览器将被重定向(“临时”,但您也可以使用其他状态代码)以:

  • 相同的axd url;与
  • 追加“迭代ID=0”;及
  • 原始查询也被追加

  • 我也有同样的问题。解决方案是将该站点添加到Internet Explorer的兼容性视图站点列表中。然后,页面将无问题呈现

    进入IE设置,然后进入兼容性视图设置,然后在“添加此网站”选项中添加项目网站

    使用IE11/SQL2012/WinServer2012,我也遇到了同样的问题。无论我使用的是报表查看器的版本10、11还是12,都没有区别。我通过将调用报表的vb.net代码放入如下if语句来解决此问题:

    if not IsPostBack then
        // code to call report goes here
    end if
    

    我从跟踪日志中注意到,报表代码有时会被调用不止一次,我记得在报表查看器示例的某个地方看到了回发条件,并将其放入了日志中。报告加载完美。

    您确定rdl已复制到目标吗?缺少参数听起来像是客户端和服务器之间不匹配。也可能是您的URL正在更改,您看到此链接了吗?是的,在我检查了服务器日志后,发现问题很快就解决了。谢谢你的帮助。从某种意义上说,@KyleMit的可能复制品是正确的:Chrome有不同的(不太严重的)症状,但这是相同的根本原因。+1-我遵循了应用于我的设置的部分,效果很好。谢谢感谢您提供这一关键信息!我无法触摸我的global.asax,所以我。虽然这对于大多数SSRS报告来说可能已经足够好了,但我敢打赌,有时IterationId会设置为其他值,以便生成宽度不断增加的图像,从而创建适合于报告呈现逻辑当前“迭代”的任何深度的视觉标识通过MS Connect链接似乎已中断。对于如何处理这个问题,微软现在有不同的建议吗?@sq33G Good catch评论中的链接不再有效。我找不到有关此问题的其他Microsoft文章。希望其他人会这样做,并将其添加到线程中。谢谢!在被困在同一个问题上数周后,我终于找到了你的问题和答案。我实现了Jeroen的解决方案,因为目前我更容易实现。请参考我的问题的答案,好吗?我想给你一个额外的+1作为你的答案。谢谢你!我在ReportViewer上遇到一个问题几个星期后终于找到了你的答案。你能在我的问题中引用你的答案吗?“我很乐意给你一个答案。”CodeswithHammer不完全确定你所说的“参考”是什么意思。你的意思是我在这里的回答也是你另一个问题的答案吗?如果是这样,我建议(a)markin