我在 VS 2013 中使用 MS Report Viewer 10;该项目正在从 VS 2010 升级。我已经解决了一系列与 Report Viewer 相关的问题,并让控件本身启动并运行。我在 SSRS 中有很多报告,我已经确认报告本身可以正常工作。
我有一个用于数据输入的 Web 窗体 ASPX 页面。它通过 JSON 将数据传递到包含报表查看器控件的弹出式 ASPX 页面。
我正在运行 IIS Express 7、SQL Server 2008 R2 (v10.50) 和 .NET Framework 4.5 的当前目标框架。
Report Viewer 不返回任何报告——没有错误消息,没有报告布局丢失数据,当然也没有完整的报告。当我通过 VS 使用相同的输入运行相同的报表时,报表预览会显示我期望的结果。
ProcessingMode
设置为 Remote
并且 ReportServerCredentials
为 null
。我研究了这意味着什么,这意味着 Report Viewer 应该使用当前网络凭据(即当前用户)连接到 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>
预计 11 月 24 日:我最终在应用程序日志中得到了一个条目:HttpHandlerInputException,缺少 URL 参数:IterationId
。此问题已在 another STOF Q&A. 中讨论过
最佳答案
应@CodeswithHammer 的要求,我将此引用添加到另一个线程,只是为了节省人们搜索它的时间。
关于c# - Report Viewer 控件不显示来自 SSRS 的报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33419047/