SQLエージェントとWeb.Config。 WAS:SSRSフォーム認証、実行中のサブスクリプション
-
05-07-2019 - |
質問
SSRSでフォーム認証を正常に実装したので、通常のasp.netメンバーシップフレームワークを使用して、Webサイトのロールとユーザーの両方を使用するようになりました。
元のアプリから正しい役割を持っている限り、ポータルにログインしてレポートを実行できます。すべて良い。
ただし、サブスクリプションを作成した場合、サブスクリプションの実行時にレポートは取得されず、ログに次のメッセージが表示されます。
subscription!WindowsService_0!161a0!10/21/2009-22:42:05:: i INFO:
Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException:
An internal error occurred on the report server. See the error log for more details. --->
System.Configuration.Provider.ProviderException:
The Role Manager feature has not been enabled.
at System.Web.Security.Roles.EnsureEnabled()
at System.Web.Security.Roles.GetRolesForUser(String username)
at MyApp.ReportServer.Security.Module.Authorization.CheckAccess(String userName, IntPtr userToken, Byte[] secDesc, ReportOperation requiredOperation)
at Microsoft.ReportingServices.Library.Security.CheckAccess(ItemType catItemType, Byte[] secDesc, ReportOperation rptOper, String reportPath)
at Microsoft.ReportingServices.Library.SecurityRequirements.CheckAccess(ItemType itemType, Byte[] securityDescriptor, String itemPath)
at Microsoft.ReportingServices.Library.DefinitionLoader.GetParameterDefinition(CatalogItemContext itemContext, String historyId, Boolean forRendering, SecurityRequirements requirements)
at Microsoft.ReportingServices.Library.RSService.GetReportParameters(ClientRequest session, CatalogItemContext reportContext, Boolean forRendering)
at Microsoft.ReportingServices.Library.RSServiceDataProvider.GetParameters(ClientRequest session, CatalogItemContext reportContext)
at Microsoft.ReportingServices.Library.RenderForNewSession.GetReportParameters()
at Microsoft.ReportingServices.Library.RenderForNewSession.GetReportMetadata()
at Microsoft.ReportingServices.Library.RenderForNewSession.get_ExecuteExistingSnapshot()
at Microsoft.ReportingServices.Library.RenderForNewSession.GetExecutionStrategy()
at Microsoft.ReportingServices.Library.ReportExecutionBase.InternalExecuteReport()
at Microsoft.ReportingServices.Library.ReportExecutionBase.Execute()
at Microsoft.ReportingServices.Diagnostics.CancelablePhaseBase.ExecuteWrapper()
--- End of inner exception stack trace ---
MyApp行は、カスタムセキュリティ拡張機能です。
/ ReportServerディレクトリのweb.configにRoleManagerとメンバーシッププロバイダーがセットアップされています。
サブスクリプションランナーはどういうわけかWebサイトの設定を回避しますか?
更新:
わかりましたので、サブスクリプションがSQLエージェントによって評価/トリガーされているときにMACHINE.CONFIGに設定されている値で実行されているようです。
web.config設定を使用しないのに、machine.configに直接進む理由は何ですか?
解決
SSRSに精通していませんが、.NET /メンバーシッププロバイダーおよびweb / app / machine.configに精通しています。
あなたの例外はサブスクリプションを示しています!WindowsService_0!161a0!10/21 / 2009-22:42:05 :: これは、サブスクリプションサービスがWindowsサービスであり、IISで実行されないことを意味すると思います。これは、異なる構成ファイルがあることを意味します。
http:// reportserver -> IIS-> web.config(構成) subscription!WindowsService->サービス-> app.config-> machine.config。
お役に立てば幸いです。