Los síntomas de recibir el siguiente error al intentar ejecutar informes creados en CRM con el asistente ó utilizando MSCRM_FetchDataSource:
En el servidor de SSRS: Your browser does not support scripts or has been configured not to allow scripts. En las máquinas clientes: An error occurred during client rendering. An error has occurred during report processing. Cannot create a connection to data source ‘CRM’. For more information about this error navigate to the report server on the local server machine, or enable remote errors. En CRM: Reporting Error The report cannot be displayed. (rsProcessingAborted)
En el servidor de SSRS: Your browser does not support scripts or has been configured not to allow scripts. En las máquinas clientes: An error occurred during client rendering. An error has occurred during report processing. Cannot create a connection to data source ‘CRM’. For more information about this error navigate to the report server on the local server machine, or enable remote errors. En CRM:
Reporting Error The report cannot be displayed. (rsProcessingAborted)
Pueden tener las siguientes causas:
1. SPN's no configurados 2. Falta de permisos de la cuenta de servicio de SSRS Service en el AD y en SQL 3. Site de CRM ApplicationHost.config no configurado para utilizar las credenciales de Windows Authentication del AppPoolCredentials
Prueba las alguna de las siguientes alternativas para solucionarlo:
1. Configurar los SPNs en el servidor especificado:
Servidor CRM SETSPN -a HTTP/CrmServerName Domain\CRMAppPool SETSPN -a HTTP/CrmServerName.Domain.com Domain\CRMAppPool Servidor SSRS/SQL Server: SETSPN -a HTTP/SsrsServerName Domain\SRSAppPool SETSPN -a HTTP/SsrsServerName.Domain.com Domain\SRSAppPool Para SQL: SETSPN -a MSSQLSvc/SqlServerName:1433 Domain\SQLServerSvcAcct SETSPN -a MSSQLSvc/SqlServerName.Domain.com:1433 Domain\SQLServerSvcAcct
2. Configurar los permisos de la cuenta de servicio de SSRS Service en el AD y modificar los permisos del grupo SQLAccessGroup en SQL como dice el artículo:
Error message when you run a report in Microsoft Dynamics CRM 4.0: "Reporting Error. The report cannot be displayed" http://support.microsoft.com/kb/946585 Sección: Complete the following steps if SQL Reporting Services is running as a domain user account
3. Añadir/cambiar la siguiente sección el fichero ApplicationHost.config del site de CRM Site en un editor de texto . (%windir%\system32\inetsrv\config\. Para todos los ficheros bajo la ruta del Default Web Site)
Poner el elemento WindowsAuthentication del atributo useAppPoolCredentials a true.
Por ejemplo: <system.webServer> <security> <authentication> <windowsAuthentication enabled="true" useAppPoolCredentials="true" /> </authentication> </security> </system.webServer>
Por ejemplo:
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" useAppPoolCredentials="true" />
</authentication>
</security>
</system.webServer>
Si el servidor de CRM 2012 esta configurado en SQL Cluster habrá que añadir un par de SPNs más como explica el siguiente artículo:
Microsoft Dynamics CRM 2011: Reports created by report wizard may fail when executing
http://support.microsoft.com/kb/2590774
Maria Esteban
Ingeniero de Soporte de Reporting Services
Hoy vamos a comentar que es FILESTREAM, para que vale, los beneficios que nos puede ofrecer, y que componentes lo forman.
Primero, ¿Qué es FILESTREAM?
Es una tecnología diseñada para tratar, dentro de una instancia SQL, ficheros sin perjudicar la instancia.
Esto se realiza con un driver externo, RSFX, que interactuara entre la BD, y un sistema NTFS.
¿Cómo se monta?
Para montar esta tecnología, tendremos 2 pasos a realizar. Primero, activar ese driver, y segundo, permitir a la instancia a comunicarse con este driver.
Activando el driver:
Para habilitar el driver, dentro de SQL Server Configuration Manager, en la pestaña de servicios, elegiremos la instancia donde queremos habilitar esta configuración. Dentro de las propiedades, pestaña FILESTREAM, podemos seleccionar para que queremos tenerlo habilitado, para TSQL, para TSQL y acceso a través de las APIs de Win32, y si queremos que ese driver este activo para recoger conexiones externas. (En un cluster, siempre estará activo para esas conexiones externas)
Si se habilita el acceso a través de las APIs de Win32, generara un share SMB (que, en este caso, no es un FileShare)
Si intentamos acceder a este share, tendremos el siguiente error:
Esto es así, porque debajo del share SMB no hay un sistema de archivos, sino un EndPoint del driver de RSFX.
El siguiente paso, es habilitar la instancia para que pueda comunicarse con el driver. Para ello, dentro de SQL Server Manager Studio, lo habilitaremos:
Una vez reiniciada la instancia, tendremos FILESTREAM listo para usarse.
A partir de aquí, podremos crear un directorio FILESTREAM dentro de una BD, crear una tabla que utilice esta tecnología, y trabajar con ella, utilizando para ello, o TSQL, o llamadas a la API de Win32 para acceder a ella.
Los permisos necesarios son,
Dentro del sistema NTFS, que el usuario que arranca la instancia, tenga acceso al directorio, y permisos de modificación. Se recomienda que nadie más tenga acceso a este directorio, ya que una modificación externa, implicara que se detecte una corrupción de datos.
Para poder modificar estos ficheros, solo necesitaremos que el usuario que lanza esta modificación / creación / borrado, tenga los permisos DML necesarios (update, select, insert o delete)
Tendréis más información en los siguientes links:
WhitePaper de FILESTREAM:
http://msdn.microsoft.com/en-us/library/cc949109.aspx
Como crear una BD con FILESTREAM:
http://msdn.microsoft.com/en-us/library/cc645585.aspx
Como crear una Tabla con FILESTREAM:
http://msdn.microsoft.com/en-us/library/cc645583.aspx
Uso de FILESTREAM a través de TSQL:
http://msdn.microsoft.com/en-us/library/cc645962.aspx
Uso de FILESTREAM a través de APIs Win32:
http://msdn.microsoft.com/en-us/library/cc645940.aspx
Moisés Romero Senosiain – Microsoft Customer Support Services