2009-07-08 13 views
2

Ich bekomme einen ziemlich frustrierenden Fehler von Business Intelligence Development Studio (Visual Studio 2008). Ich habe einen Bericht, der vier Unter Berichte enthält, diese Unterberichte können oder keine Daten enthalten, und als solche ihre verborgene Eigenschaft durch einen Ausdruck gesteuert wird:SSRS '08 System.Security.Permissions.SecurityPermission FEHLER

=IIF(ReportItems![SOME TEXT BOX].Value = 0, TRUE, FALSE) 

Der Inhalt von [SOME TEXT BOX] ist die Anzahl der Zeilen, die von der gespeicherten Prozedur für ihren jeweiligen Unterbericht zurückgegeben werden. Wenn der Wert 0 ist, wird das Rechteck, das den Unterbericht enthält, auf HIDDEN = TRUE gesetzt.

Dies funktioniert für 3 der 4 Teilberichte, aber aus irgendeinem Grund, einer von ihnen verursacht diesen Fehler:

The hidden expression for [RECTANGLE CONTAINING SUB-REPORT] contains an error: 
Request for the permission of type 'System.Security.Permissions.SecurityPermission, mscorlib, 
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed 

Einige googeln zeigt, dass dies (klar) ist mit Zugriffsberechtigungen zu tun, aber die meisten Leute scheinen den Fehler in Bezug auf MS Sharepoint zu erfahren, und die Lösungen scheinen nicht anwendbar zu sein.

Jede Hilfe würde sehr geschätzt werden!

Brian

Edit: Dies geschieht nur, wenn 'Report [SOME TEXT BOX] .Value = 0!' TRUE zurückgibt, das heißt, es sind keine Zeilen.

+0

Wenn jemand in diesen Beitrag rannte nach dem suchen: Anfrage für die Erlaubnis des Typs 'System.Security.Permissions.SecurityPermission .... Fehler Ich lief in dies während ein versteckter Wert auf eine Gruppe Zeile wie folgt: = iif (Suche (Felder! scopedIntField.Value, UnScopedStrField.Value, UnScopedOtherStrField.Value, "UnScopedDataSet") = "", true, false) Das Problem war, dass ich den Int-Wert in eine Zeichenkette konvertieren musste, so dass dieser Ausdruck folgendes festlegte: = iif (lookup (CStr (Fields! ScopedIntField.Value), UnScopedStrField.Value, UnScopedOtherStrField.Value, "UnScopedDataSet") = "", true, false) Seltsamerweise war es – TGN12

Antwort

3

Ok, also habe ich die echte Ursache dieses Problems gefunden; Microsoft und ihre nicht hilfreichen Fehlermeldungen! Aber im Ernst, ich habe diesen Fehler bekommen, weil ich einen Nullwert übergeben habe.

Angenommen, Sie haben meine erste Frage gelesen, das Dataset, das NULL erhielt, war das, das [SOME TEXT BOX] bevölkert, aber das NULL war nicht in dem Feld, das [SOME TEXT BOX] füllt. Ein bisschen um die Häuser, aber ich bin am Ende angekommen!

0

So habe ich eine halbe Lösung gefunden: Ich ging zur URL des Berichts-Managers und dann zur Einstellung der Website, dann Sicherheit, und fügte eine neue Rollenzuweisung mit vollem Zugriff für alle Mitglieder unserer Domäne. Stand:

http://msdn.microsoft.com/en-us/library/aa337385.aspx

Dies hat der Bericht erlaubte in der entfalteten Web-Anwendung zu arbeiten, aber BIDS ist nach wie vor nicht in der Lage, den Bericht auszuführen. Hey ho, zumindest der Kunde kann es benutzen, und ich kann es über den Report Manager testen.

0

fand ich die sehr echte Ursache des Problems, wenn Sie Ihren Code von .NET Framework 4.0 auf 4.5 migrieren: Berechtigungen !!. Jetzt sind die Berechtigungen im ReportViewer standardmäßig eingeschränkt.

Um zu beheben. Tun Sie Folgendes in Ihrem Code.

Wenn Report Viewer Instancing, stellen Sie den uneingeschränkten Modus:

  var myReport = new ReportViewer(); 

      System.Security.PermissionSet permissionReport = new System.Security.PermissionSet(System.Security.Permissions.PermissionState.Unrestricted); 

      myReport.LocalReport.SetBasePermissionsForSandboxAppDomain(permissionReport); 

Und getan !!

+0

Aber ich migrierte nicht .NET Code von 4.0 nach 4.5, es gibt keinen .Net Code, der an diesem Problem beteiligt ist, Es war völlig SQL'08 und SSRS. – Brian