我们已从 SSRS 2008 实例升级到 SSRS 2008 R2。这是就地升级,因此报告和数据源被带到新实例。
从应用程序端(asp.net),我们使用SSRS Webservice(ReportService2005.asmx)进行ListChildren、GetPolicies等调用来处理一些特定于应用程序的场景。
但是,在升级到 R2 后,对 ListChildren 的 Web 服务调用失败并显示“401, unathorized”消息。
ReportingService2005 reportService = new ReportingService2005();
reportService.Url = ConfigurationManager.AppSettings["ReportServerWebserviceUrl"];
reportService.Credentials = new NetworkCredential(
ConfigurationManager.AppSettings["ReportViewerUser"],
ConfigurationManager.AppSettings["ReportViewerPassword"],
ConfigurationManager.AppSettings["ReportViewerDomain"]);
reportService.PreAuthenticate = true;
SSRSReportServer.CatalogItem[] _reportItems = new SSRSReportServer.CatalogItem[] { };
_reportItems = reportService.ListChildren(ConfigurationManager.AppSettings["RootFolder"], true);
asp.net 应用程序中的代码如上。上面 NetworkCredential 中使用的帐户处于活动状态,我已检查以确保该帐户没有被锁定。
该帐户设置为代码尝试访问的 SSRS 文件夹上的内容管理器。
当我浏览到http://server/reportserver/reportservice2005.asmx - 我能够看到 web 服务的 wdsl。
总体而言,这是工作代码,当指向 Sql2008 SSRS 实例时 - 并且 401 错误显示在 Sql2008 R2 实例上。
有任何想法吗?