SQLエージェントとWeb.Config。 WAS:SSRSフォーム認証、実行中のサブスクリプション

StackOverflow https://stackoverflow.com/questions/1603649

質問

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。

お役に立てば幸いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top