ver tiene services permiso para esta carpeta acceso reporting-services securityexception

reporting-services - tiene - reporting services portal



¿Cómo puedo resolver una excepción System.Security.SecurityException con código personalizado en SSRS? (3)

Así es como pude resolver el problema:

  • firmar fuertemente el ensamblaje personalizado en cuestión
  • modifique el archivo rssrvpolicy.config para agregar permisos para el ensamblaje

    <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust" Name="Test" Description="This code group grants the Test code full trust. "> <IMembershipCondition class="StrongNameMembershipCondition" version="1" PublicKeyBlob="0024000004800000940100000602000000240000575341310004000001000100ab4b135615ca6dfd586aa0c5807b3e07fa7a02b3f376c131e0442607de792a346e64710e82c833b42c672680732f16193ba90b2819a77fa22ac6d41559724b9c253358614c270c651fad5afe9a0f8cbd1e5e79f35e0f04cb3e3b020162ac86f633cf0d205263280e3400d1a5b5781bf6bd12f97917dcdde3c8d03ee61ccba2c0" /> </CodeGroup>

Nota al margen: esta es una gran manera de obtener el blob de clave pública de su ensamblaje VS truco para obtener el token de clave pública y blob de un ensamblado firmado .

Creé un ensamblado y lo mencioné en mi informe de Reporting Services. Probé el informe localmente (funciona) y luego cargué el informe en un servidor de informes (no funciona).

Aquí está el error que arroja el código personalizado que he escrito.

System.Security.SecurityException: solicitud del permiso de tipo ''System.Security.Permissions.SecurityPermission, mscorlib, Version = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089'' failed. en System.Security.CodeAccessSecurityEngine.CheckNReturnSO (PermissionToken permToken, CodeAccessPermission demanda, StackCrawlMark y stackMark, Int32 unrestrictedOverride, Int32 create) en System.Security.CodeAccessSecurityEngine.Assert (CodeAccessPermission cap, StackCrawlMark y stackMark) en System.Security.CodeAccessPermission.Assert () en [Nombre del método recortado] en ReportExprHostImpl.CustomCodeProxy. [Nombre del método recortado] La acción que falló fue: Demanda El tipo del primer permiso que falló fue: System.Security.Permissions.SecurityPermission La zona del ensamblado que falló fue: MyComputer

Este proyecto es algo que heredé, y no estoy íntimamente familiarizado con él. Aunque tengo el código (ahora), entonces al menos puedo trabajar con él :)

Creo que el código que está fallando es este:

Dim fio As System.Security.Permissions.FileIOPermission = New System.Security.Permissions.FileIOPermission(Security.Permissions.PermissionState.Unrestricted) fio.Assert()

Sin embargo, este tipo de cosas también está en todas partes:

Private Declare Function CryptHashData Lib "advapi32.dll" (ByVal hhash As Integer, ByVal pbData As String, ByVal dwDataLen As Integer, ByVal dwFlags As Integer) As Integer

Puedo ver que estas cosas son las que Reporting Services no pudo realizar de manera inmediata.


<system.web> <trust level="Full"/> </system.web>

prueba esto en web.config


Ejecute su servicio en modo administrador