我在 VS 2013 中使用 MS Report Viewer 10;该项目正在从 VS 2010 升级。我已经解决了一系列与报表查看器相关的问题,并让控件本身启动并运行。我在 SSRS 中有很多报告,并且我已经确认这些报告本身可以正常工作。
我有一个用于数据输入的 Web 表单 ASPX 页面。它通过 JSON 将数据传递到包含报表查看器控件的弹出 ASPX 页面。
我正在运行 IIS Express 7、SQL Server 2008 R2 (v10.50) 和 .NET Framework 4.5 的当前目标框架。
报告查看器不返回任何报告——没有错误消息,没有报告布局丢失数据,当然也没有完整的报告。当我通过 VS 使用相同的输入运行相同的报告时,报告预览显示了我期望的结果。
ProcessingMode
被设定为Remote
and ReportServerCredentials
is null
。我研究了这意味着什么,这意味着报表查看器应该使用当前网络凭据(即当前用户)连接到 SSRS。我确认当前用户与我当前的登录名正确匹配;我可以使用 Windows 身份验证正确连接到 SSRS 和 SQL Server。
ReportViewer 不在 Web 表单设计器中创建,因此我无法在设计时对其设置任何属性。
所以我怀疑我的问题是运行时的身份验证问题。我不知道如何调查和解决这个问题。
页面控制代码:
<ssrs:ReportViewer ID="ReportViewer" runat="server" ProcessingMode="Remote" Width="100%"
Height="690" ShowParameterPrompts="false" AsyncRendering="false"/>
我尝试运行报告后,SSRS 日志包含以下条目:
library!ReportServer_0-3!1dc8!(datetime): i INFO: RenderForNewSession('(report)')
webserver!ReportServer_0-3!1dc8!(datetime, 1 second later): i INFO: Processed report. Report='(report)', Stream=''
遗留项目使用了 MS Report Viewer 9。它运行得很好。我看到的唯一变化web.config
与更高版本以及从 IIS 6 到 IIS 7 的更改相关。
由于它出现在评论中,因此以下是 web.config 中的相关行:
<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>
</system.webServer>
My Report Viewer window:
预计 11 月 24 日:我最终在应用程序日志中得到了一个条目:HttpHandlerInputException, Missing URL parameter: IterationId
。这个问题已在以下位置讨论过:另一个 STOF 问答。 https://stackoverflow.com/q/21993721/2615836