ASP.NET ReportViewer在开发中工作,部署时为空

rog*_*awg 3 reportviewer asp.net-3.5

我有一个ASP.NET Web应用程序,它利用ReportViewer显示本地报告.一切都在我的开发机器上运行得很漂亮(XP Pro,Visual Studio 2008).当我将应用程序部署到生产服务器(Windows Server 2008,IIS 7)时,除了报表查看器之外,该站点运行良好.生成报告时,报告查看器仍为空.

我编写了调试代码来验证是否正在从数据库接收记录,它们是.不会发生错误,但报表查看器中不显示任何记录.此外,通常出现在ReportViewer控件的菜单栏中的图像(导出按钮,打印按钮,前进和后退按钮等)也不会加载.

我在服务器上运行ReportViewer.exe来安装相应的文件,并且我已经验证它们是在机器的GAC中.

任何人都可以建议一种方法来调试这个...如果生成错误会更容易(我不敢相信我只是这么说)?

kbr*_*ton 5

请验证您是否具有所需的web.config条目.我怀疑你缺少system7webServer/handlers中的条目,这在IIS7中是必需的.IIS7几乎忽略了system.web/httpHandlers部分,这可以解释为什么它在IIS 5.1(XP)中有效但在7中没有.

版本号可能会有所不同,但这应包含在条目中:

在system.web/compilation部分中:

  <buildProviders>
    <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </buildProviders>
Run Code Online (Sandbox Code Playgroud)

在system.web/httpHandlers部分中

  <add path="Reserved.ReportViewerWebControl.axd"
       verb="*"
       type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
       validate="false" />
Run Code Online (Sandbox Code Playgroud)

在system.webServer/handlers部分中:

  <add name="ReportViewer"
       path="Reserved.ReportViewerWebControl.axd"
       verb="*"
       type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
       preCondition="integratedMode" />
Run Code Online (Sandbox Code Playgroud)