Windows Server 2008 上的报告是空白的,但在 win7 上不是
Reports are blank on win serv 2008 but not on win7
我有一个 asp.net C# 应用程序,在构建或调试应用程序(开发环境)时,如果我们将它部署到 win 7 上的 iis 7,报告将显示。
然而,当在 win server 2008 上的 iis 上部署应用程序时,报告将 return 空白。
疑难解答:
按照以下链接提供的说明进行操作 - 已确认
确保机器上安装了 reportviewer dll(win serv 2008 当前使用版本 10.0.0.0)- 已确认
其他应用程序已在此服务器上运行并且运行良好 - 已确认
老实说,我不知道问题出在哪里
Web.Config
<system.web>
<assemblies>
<add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
</assemblies>
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
page.Aspx
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Tab1</a></li>
</ul>
<div id="tabs-1">
<rsweb:ReportViewer ID="ReportViewer1" runat="server" width="100%" Height="100%" SizeToReportContent="true" AsyncRendering="false">
</rsweb:ReportViewer>
</div>
代码隐藏
private void getReport(ReportViewer report_viewer, string report_path, ReportParameter report_parameter, DataTable sourceTable, DataTable sourceGraph)
{
report_viewer.ProcessingMode = ProcessingMode.Local;
report_viewer.LocalReport.ReportPath = Server.MapPath(report_path);
report_viewer.LocalReport.DataSources.Clear();
report_viewer.LocalReport.SetParameters(new ReportParameter[] { p1 });
report_viewer.LocalReport.DataSources.Add(new ReportDataSource("Table", sourceTable));
report_viewer.LocalReport.DataSources.Add(new ReportDataSource("Graph", sourceGraph));
report_viewer.LocalReport.Refresh();
}
所以报告本身没有问题,但是正如 KSib 提到的那样,从数据库获取数据时出现问题。使用日期时必须小心,尤其是当开发机器使用与部署服务器不同的语言时。
我有一个 asp.net C# 应用程序,在构建或调试应用程序(开发环境)时,如果我们将它部署到 win 7 上的 iis 7,报告将显示。
然而,当在 win server 2008 上的 iis 上部署应用程序时,报告将 return 空白。
疑难解答: 按照以下链接提供的说明进行操作 - 已确认
确保机器上安装了 reportviewer dll(win serv 2008 当前使用版本 10.0.0.0)- 已确认
其他应用程序已在此服务器上运行并且运行良好 - 已确认
老实说,我不知道问题出在哪里
Web.Config
<system.web>
<assemblies>
<add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
</assemblies>
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
</httpHandlers>
</system.web>
<system.webServer>
<handlers>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
page.Aspx
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Tab1</a></li>
</ul>
<div id="tabs-1">
<rsweb:ReportViewer ID="ReportViewer1" runat="server" width="100%" Height="100%" SizeToReportContent="true" AsyncRendering="false">
</rsweb:ReportViewer>
</div>
代码隐藏
private void getReport(ReportViewer report_viewer, string report_path, ReportParameter report_parameter, DataTable sourceTable, DataTable sourceGraph)
{
report_viewer.ProcessingMode = ProcessingMode.Local;
report_viewer.LocalReport.ReportPath = Server.MapPath(report_path);
report_viewer.LocalReport.DataSources.Clear();
report_viewer.LocalReport.SetParameters(new ReportParameter[] { p1 });
report_viewer.LocalReport.DataSources.Add(new ReportDataSource("Table", sourceTable));
report_viewer.LocalReport.DataSources.Add(new ReportDataSource("Graph", sourceGraph));
report_viewer.LocalReport.Refresh();
}
所以报告本身没有问题,但是正如 KSib 提到的那样,从数据库获取数据时出现问题。使用日期时必须小心,尤其是当开发机器使用与部署服务器不同的语言时。