SSRS 2008 インスタンスから SSRS 2008 R2 にアップグレードしました。これはインプレース アップグレードであったため、レポートとデータソースは新しいインスタンスに引き継がれました。
アプリケーション側 (asp.net) からは、SSRS Web サービス (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 インスタンスを指している場合に機能するコードであり、Sql2008 R2 インスタンスに 401 エラーが表示されます。
何か案は?