Ho impostato SSRS sul mio localhost e utilizzato BIDS per creare un paio di rapporti su di essi. Accedono ai dati dallo stesso SQL Server in cui è distribuito SSRS e, quando li visualizzo in anteprima, funzionano correttamente. Poi li ho distribuiti sul mio SSRS localhost e li ho acceduti tramite l'interfaccia web di ReportManager, ancora una volta hanno funzionato bene. Alla fine li ho distribuiti su SSRS del mio hosting provider. Stesso affare; buona connettività dati e sembra ottimo nel ReportManager.Utilizzo di SSRS con ASP.Net ReportViewer
La prima volta che accedo a questi tramite il ReportManager su entrambi i sistemi, richiede il mio nome utente e la password, che sul mio laptop sono solo l'accesso e la password del mio account. Per il mio provider di hosting è il mio account di accesso per loro.
Il mio problema si verifica quando si tenta di visualizzare un report utilizzando il controllo ReportViewer in ASP.Net. Molto spesso, quando tenta di eseguire il rendering, ottengo un "Accesso errato" o "401: Non autorizzato" invece del mio rapporto. Dopo molte letture e riflessioni, credo che il problema sia che devo accedere non a SQL Server, ma al sito web (servizio web?) Dove sono esposti i miei report. In questo momento, se non fornisco alcuna credenziale, posso ottenere i miei rapporti locali nel ReportViewer (di solito). Tuttavia, quando distribuisco i report su un server remoto, questo non funziona più.
Dopo alcune ricerche ho creato una classe che implementa IReportServerCredentials e ho provato ad usarlo per passare il nome utente e la password, ma questo non sembra funzionare. E mi stava confondendo se queste credenziali dovessero essere per la fonte dei dati o per il servizio web.
Se qualcuno potrebbe indurmi a capire come ottenere il ReportViewer per accedere al servizio Web SSRS, lo apprezzerei molto.
In effetti, ho ricevuto un errore proprio come quello quando sono stato distribuito in un'altra posizione di staging, dicendo che l'account NT che stavo usando non aveva i privilegi per eseguire quell'azione. Comprendere la rappresentazione e l'account in cui vengono eseguite le mie applicazioni è qualcosa su cui devo concentrarmi maggiormente. Alla fine, oggi, sono riuscito a far funzionare questa cosa aggiungendo un ruolo per "BUILTIN \ Users" di "Browser". Funziona, ma non ne sono pazzo perché penso che fondamentalmente significhi che il rapporto non è stato bloccato affatto. Continuerò a perseguire le risposte che ottengo qui. –
Alla fine, ho finalmente capito esaminando la classe di credenziali che ho creato più attentamente, confrontandola con un codice di esempio che sapevo funzionasse. È risultato che stavo restituendo "True" dal mio metodo GetFormsCredentials(). Dal momento che non ho mai avuto intenzione di utilizzare l'autenticazione basata su form, avrei dovuto restituire "False."Tutti i parametri" out "di quel metodo venivano impostati su NULL, quindi l'autenticazione non veniva eseguita correttamente e non me ne ero reso conto. –
Impressionante. Abbiamo incontrato gli stessi problemi quando stavamo cercando di integrare SSRS con i nostri app Web. Alla fine siamo riusciti a ottenere i permessi giusti, ma è stato doloroso. – jvilalta