我们已从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文件夹中设置为Content Manager。
当我浏览http://server/reportserver/reportservice2005.asmx时 - 我能够看到web服务的wdsl。
总的来说,这是工作代码,当指向Sql2008 SSRS实例时 - 并且在Sql2008 R2实例上显示401错误。
任何想法?
答案 0 :(得分:0)
您的Web服务器是否设置为使用SQL2008实例的委派而不是R2实例?由于您在Web服务器上设置凭据,这可能不是问题,但这是一个相当常见的问题。