我正在使用ReportViewer
10.0。在谷歌浏览器中,这些行带有一个名为blank.gif
的损坏图像。但IE和Firefox工作正常。
以下是圈出图像的示例:
有关如何解决此问题的任何想法?
答案 0 :(得分:8)
只需从SQL Reporting Services - Viewer broken in Non-IE Browsers添加以下CSS:
body:nth-of-type(1) img[src*="Blank.gif"]{
display:none;
}
答案 1 :(得分:2)
当前的解决方案将掩盖问题,但不会解决根本问题,即除了IE之外的浏览器组成gif请求(SSRS仅用于替换填充)时,他们不会#39 ; t知道要包含IterationId
查询字符串参数。
正如SQL Reporting Services Viewer broken in Non-IE Browsers指出的那样,如果您正在使用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"));
}
}
答案 2 :(得分:0)
在我的情况下,它的响应不能在测试模式下工作(Localhost),但我更正了,现在它可以正常工作,而不是放“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
希望你能帮忙,
答案 3 :(得分:0)
解决方法:使用rectangles / textboxes / tablix单元格,只显示其中一个边框。适用于chrome。对于OP,他可以在数据列之间添加额外的列作为间隔符,并跳过显示这些列的边框。
答案 4 :(得分:0)
正如其他答案,我解决了这个问题,将以下代码添加到我的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,粘贴代码,它将解决您的问题。
答案 5 :(得分:0)
我与Reportviewer版本10有同样的错误,因此我更新到版本14,它解决了问题并获得了一些增强功能,强制指南here