简而言之,问题是当我尝试查看嵌入在报告查看器中的报告时,我收到以下堆栈跟踪的 401 Unauthorized 错误。
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetSecureMethods()
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.IsSecureMethod(String methodname)
at Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(String Report, String HistoryID)
at Microsoft.Reporting.WebForms.ServerReport.GetExecutionInfo()
at Microsoft.Reporting.WebForms.ServerReport.SetParameters(IEnumerable`1 parameters)
at ReportingObject.RenderReport(ReportViewer reportViewer, ReportParameter[] param) in C:\Projects\RBDCReportMapIntelligence\RBDCReportMapIntelligence\ReportingObject.cs:line 41
at Report.btnViewReport_Click(Object sender, EventArgs e) in c:\Projects\RBDCReportMapIntelligence\RBDCReportMapIntelligence\Report.aspx.cs:line 126
at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
以下是更多详细信息:
- 我的机器(运行 Windows Vista)同时运行 IIS 和报告服务。
- 我是我机器上的本地管理员,但不是系统管理员。
- 根据这篇文章,我已经配置了报告服务以授予自己访问权限(这似乎是一个非常常见的解决方案)。但即使这样做了,如果不以管理员身份运行 IE,我也看不到报告管理器。
- IIS 只为所有站点启用了 DefaultAppPool 的匿名身份验证,我不确定应该和不应该启用什么。DefaultAppPool 是集成托管管道模式,其中 NetworkService 设置为标识。
- 我不确定 VS 上是否有需要更改的设置。
- 我有一个实现 IReportServerCredentials 接口的类(根据网上的很多示例),用于连接到报表服务器
我也尝试在网上和 stackoverflow 上查看,并且从这些解决方案中尝试了很多东西,但似乎没有任何帮助。
如果有人可以提供帮助,那就太好了。如果我需要在问题中添加更多细节,请告诉我。