7

我正在使用ReportViewer10.0. 在 Google Chrome 中,这些线条带有一个名为blank.gif. 但 IE 和 Firefox 运行良好。

这是一个带有圆圈图像的示例:

截图

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

4

6 回答 6

10

只需从 SQL Reporting Services 中添加以下 CSS - Viewer 在非 IE 浏览器中损坏

body:nth-of-type(1) img[src*="Blank.gif"]{
    display:none;
}
于 2013-05-17T12:20:11.650 回答
2

当前的解决方案将掩盖问题,但不会解决根本问题,即当 IE 以外的浏览器正在编写 gif 请求(SSRS 仅用于替换填充)时,他们不知道包含IterationId查询字符串参数。

正如在非 IE 浏览器中损坏的 SQL Reporting Services 查看器所指出的,如果您使用的是 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"));
    }
}
于 2014-12-01T16:56:23.830 回答
1

解决方法:使用矩形/文本框/tablix 单元格,并且只显示其中一个边框。适用于铬。对于 OP,他可以在数据列之间添加额外的列作为分隔符,并跳过显示这些列的边框。

于 2015-10-15T23:36:05.497 回答
0

我在 Reportviewer 版本 10 中遇到了同样的错误,所以我更新到版本 14,它解决了问题并获得了一些增强功能,此处提供指南

于 2017-05-23T19:45:10.950 回答
-1

在我的情况下,它的响应在测试模式(本地主机)下不起作用,但我更正了,现在它起作用了,而不是放“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

希望你帮忙,

于 2015-02-16T16:26:09.570 回答
-1

作为其他答案,我解决了这个问题,将以下代码添加到我的 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,粘贴代码,它将解决您的问题。

于 2016-12-20T17:06:20.020 回答