Frage

Ich habe erfolgreich Formularauthentifizierung in SSRS implementiert, so verwendet er nun beiden Rollen und Benutzer von meiner Website, die gewöhnliche asp.net Mitgliedschaft Framework.

Ich kann auf das Portal anmelden und jeden Bericht ausführen, solange ich die richtige Rolle von meiner ursprünglichen app habe. Alles ist gut.

Allerdings, wenn ich ein Abonnement erstellen, dann, wenn das Abonnement läuft, ich habe nicht meinen Bericht, sondern diese Meldung im Protokoll:

    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 ---

Die MeineAnw Linie ist meine benutzerdefinierte Sicherheitserweiterung.

Ich habe das Rolemanager und Mitgliedschaftsanbieter-Setup in web.config im / Reportverzeichnis.

Hat das Abonnement Läufer irgendwie die Website-Einstellungen umgehen?

UPDATE:

Ok, so fand ich heraus, dass es offenbar mit ausgeführt wird, was Wert ist in Machine.config gesetzt, wenn ein Abonnement von SQL-Agenten ausgewertet / ausgelöst wird.

Irgendwelche Hinweise, warum es nicht die web.config-Einstellungen verwendet, sondern geht direkt auf machine.config?

War es hilfreich?

Lösung

ich mit SSRS nicht formiliar, aber ich bin mit .NET / Mitgliedschaftsanbieter und Web / app / machine.config.

Ihre Ausnahmezustände Abonnement WindowsService_0 161a0 21.10 / 2009-22:! 42: 05 :: Ich denke, das bedeutet, dass der Abo-Service ein Windows-Dienst ist und läuft nicht in IIS. Dies bedeutet, es eine andere Konfigurationsdatei hat.

http: // Report -> IIS -> web.config (Ihre Konfiguration) Dienstleistungen> - - Abonnement Windows!> App.config. -> machine.config

Hoffe, es hilft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top