2009-03-25 1 views
0

Ich habe eine Renderingerweiterung für Reporting-Dienste, die den ReportExecution2005.asmx-Dienst verwendet, um eine Reihe von "Unterberichte" auszuführen und dann die Ergebnisse in einer PowerPoint-Präsentation.Reporting Services 2005: ReportExecution2005.asmx kehrt mit 401 Access Denied zurück, wenn von einer RenderingExtension aufgerufen

Ein typisches Anwendungsszenario wäre, zum Berichts-Manager zu gehen und meinen "Powerpoint" -Bericht auszuwählen, der nur als Platzhalter für Parameter verwendet wird, die an die "Unterberichte" übergeben werden. Ich wähle dann meine Erweiterung aus der Liste der Exportformate aus und klicke auf Exportieren, wodurch die Erweiterung ausgeführt wird und mir meine PPTX-Datei zurückgegeben wird.

Dies funktioniert auf unseren Live- und Testservern einwandfrei. Aber ich bin auf ein sehr seltsames Problem gestoßen, als ich versucht habe, einen anderen Testserver einzurichten.

Jeder Aufruf der Erweiterung an den Webservice erfolgt mit "401 Access Denied" (keine weiteren Informationen zum Substatus verfügbar).

Dinge, die ich ohne Erfolg versucht habe: - ermöglichen physischen Zugriff auf die Ordnerstruktur des virtuellen Berichtsserver-Verzeichnisses für alle. Und ich meine buchstäblich alle - ASPNET, NETZWERKDIENST, Jeder, das Konto, das ich normalerweise verwende, um sich anzumelden, das ist ein Administrator und Besitzer des Ordners - verwenden Sie Reporting Manager, um die Sicherheit auf der Seite Reporting Services einzurichten. Auch hier wurde jedem erdenklichen Benutzer-/Gruppenkonto jede erdenkliche Rolle zugewiesen. - erlauben Sie anonymen Zugriff auf die ReportServer Web App. - Der Identitätswechsel wurde in der ReportServer Web App aktiviert. - die Benutzerinformationen fest einprogrammiert zu verwenden, wenn die Webservice Aufruf (standardmäßig es System.Net.CredentialCache.DefaultCredentials nur verwendet)

Ich habe auch eine kleine Test-Website, die in genau die gleichen Weise wie die Rendering den ReportExecution Dienst verbraucht und von der Website authentifiziert sich der Webserver gut und ermöglicht es mir, den Webdienst anzurufen. Offensichtlich liegt das Problem nicht in der Sicherheitskonfiguration des Webdienstes selbst.

Beginnend, meine Haare zu ziehen. Als letzten Ausweg möchte ich Reporting Services wieder installieren, aber in der Zwischenzeit (oder wenn das nicht hilft) - wenn jemand auf etwas Ähnliches gestoßen ist, würde ich jede Eingabe sehr schätzen.

Antwort

1

Ich habe ähnliches Verhalten bei der Migration eines ASP.NET-Projekts gesehen, das den Webdienst ReportExecution2005 aufgerufen hat. Als ich auf meiner lokalen Box lief, war alles in Ordnung. Als ich es auf unseren Entwicklungsserver migriert habe, habe ich 401-Fehler bekommen. In unserem Fall musste Kerberos auf dem Entwicklungsserver konfiguriert werden, um Anmeldeinformationen an die SSRS-Box zu delegieren.

Sie können überprüfen, ob der neue Server seine Anmeldeinformationen an den SSRS-Computer delegiert und ob dies einen Unterschied macht.

Hope this,

Bill

hilft