我已经在SSRS中成功实现了表单身份验证,因此现在使用普通的asp.net成员资格框架,使用我网站上的角色和用户。

我可以登录门户并运行任何报告,只要我从原始应用程序中获得正确的角色即可。一切都好。

但是,如果我创建订阅,那么,当订阅运行时,我不会收到我的报告,而是在日志中显示此消息:

    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和成员资格提供程序。

订阅者是否以某种方式规避了网站设置?

更新:

好的,所以我发现,当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(您的配置) 订阅!WindowsService - >服务 - > app.config - > machine.config中。

希望它有所帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top