的ReportViewer表示铬破碎图像(ReportViewer showing broken i

2019-07-04 00:51发布

我使用ReportViewer 10.0。 在谷歌浏览器,线路配称为一个破碎的形象blank.gif 。 但IE和Firefox都工作正常。

下面是与盘旋在图像的例子:

有想法该怎么解决这个吗?

Answer 1:

只需添加从以下CSS SQL Reporting Services的-浏览器在非IE浏览器打破 :

body:nth-of-type(1) img[src*="Blank.gif"]{
    display:none;
}


Answer 2:

目前的解决方案会掩盖问题,但不会解决根本问题,这是当除了IE浏览器正在撰写的GIF请求(其中SSRS只是使用替换填充),他们不知道以包括IterationId查询字符串参数。

由于SQL Reporting Services的浏览器打破了非IE浏览器所指出的,如果你使用的ReportViewer,你可以在你的应用的路由解决这个问题Application_BeginRequest是这样的:

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


Answer 3:

在我的情况下,它的响应不是测试模式下工作(本地主机),但我纠正和现在的作品,而不是把“StartsWith”我把“包含”。 它的代码:

Protected Sub Application_BeginRequest(sender As Object, e As EventArgs)
        ' Original fix credit to Stefan Mohr
        ' Bug fix for MS SSRS Blank.gif 500 server error missing parameter IterationId
        ' https://connect.microsoft.com/VisualStudio/feedback/details/556989/
        Dim req As HttpRequest = HttpContext.Current.Request
        If req.Url.PathAndQuery.Contains("/Reserved.ReportViewerWebControl.axd") AndAlso Not req.Url.ToString().ToLower().Contains("iteration") AndAlso Not [String].IsNullOrEmpty(req.QueryString("ResourceStreamID")) AndAlso req.QueryString("ResourceStreamID").ToLower().Equals("blank.gif") Then
            Context.RewritePath([String].Concat(req.Url.PathAndQuery, "&IterationId=0"))
        End If
    End Sub

希望大家帮忙,



Answer 4:

解决方法:使用矩形/文本框/表矩阵细胞和徒有其边界呈现出一个。 适用于Chrome。 对于OP,他可以添加额外的列作为数据列之间的间隔,并跳过显示了这些边界。



Answer 5:

至于其他的答案,我解决了这个问题,将以下代码添加到我的Global.asax文件:

void Application_BeginRequest(object sender, EventArgs e)
{
    //The following code is a hack for stopping a broken image from magically appearing on SSRS reports in chrome
    //where ever a line is used in the report.
    Uri u = HttpContext.Current.Request.Url;

    //If the request is from a Chrome browser 
    //AND a report is being generated 
    //AND there is no QSP entry named "IterationId"
    if (HttpContext.Current.Request.Browser.Browser.ToLower().Contains("chrome") &&
     u.AbsolutePath.ToLower().Contains("reserved.reportviewerwebcontrol.axd") &&
     !u.Query.ToLower().Contains("iterationid"))
        HttpContext.Current.RewritePath(u.PathAndQuery + "&IterationId=0");
}

但是,也许你已经错过了,或者没有在Global.asax文件中,如发生在我身上。 因此,选择你的解决方案,请访问:

File > New > File > Web > C#/VB.Net > Global Application Class

将其保存为Global.asax中,粘贴代码,它会解决你的问题。



Answer 6:

我曾与版本的ReportViewer 10同样的错误,所以我升级到14版,它解决的问题,并得到了一些改进,compelte指南这里



文章来源: ReportViewer showing broken images in Chrome