El error de Reporting Services 2008 que podemos encontrar en el Visor de Sucesos de Aplicación al acceder al directorio virtual de ReportServer tras una instalación y configuración de Reporting Server 2008, es el error The application domain WindowsService_1 failed to initialize. Error: The endpoint cannot be created, que viene asociado al mensaje El servidor de informes ha encontrado un error de configuración (rsServerConfigurationError), o su equivalente en inglés The report Server has encountered a configuration error (rsServerConfigurationError), al intentar acceder al directorio virtual de ReportServer, como se muestra en la siguiente pantalla capturada:
Este error, en el Visor de Sucesos de Aplicación, queda registrado de la siguiente forma:
- Source: Report Server Windows Service (MSSQLSERVER)
- Event ID: 140
- Task Category: Startup/Shutdown
- Level: Error
- Keywords: Classic
- User: N/A
- Computer: miniguille2k8.mini.guillesql.local
- Description: The application domain WindowsService_4 failed to initialize. Error: The endpoint cannot be created.
El entorno o escenario en el que he reproducido este error, es el siguiente.
- Servidor Windows Server 2008 Enterprise con Service Pack 2, lo que implica IIS7, y en consecuencia los Roles Application Server y Web Server (IIS). En mi caso, lo monté en el pequeñín, mi MiniPortátil de pruebas. En cualquier caso, aprovecho para recordar que Reporting Server 2008 ya no depende de IIS, como ocurría en versiones anteriores, utilizando en su lugar el módulo http.sys.
- El mismo servidor es un Controlador de Dominio (ejecuta los Roles de Active Directory Domain Services y DNS).
- El mismo servidor incluye una instalación de MOSS 2007 con el Service Pack 2 de MOSS.
- El mismo servidor incluye una instalación completa de SQL Server 2008, con SQL Server (motor relacional), Analysis Services (motor multidimensional), Integration Services, y Reporting Services.
- La instalación de Reporting Services 2008 ha sido realizada sin configuración alguna, es decir, utilizando la opción Install, but do not configure the report server. Tras la instalación, se ha procedido a configurar Reporting Services 2008 en modo integrado con SharePoint (SharePoint Integrated Mode). Para ejecutar el servicio de Report Server, se ha utilizado una cuenta de dominio sin privilegios, en el caso del ejemplo, la cuenta MINI\SQLSvc (un domain user pelao).
Este error lo detecté tras la instalación de Reporting Services 2008 y su configuración en modo de integración con SharePoint (SharePoint Integrated Mode), al acceder al directorio virtual de ReportServer. Insisto en este detalle, porque si no hubiese accedido al directorio virtual del ReportServer, no habría tenido conciencia de dicho error. En este caso, si se continúa con la instalación de la infraestructura de Reporting Services 2008 en MOSS, en particular con el Addin de Reporting Services para SharePoint Technologies, sin conciencia de este problema, al configurar la integración de Reporting Services en SharePoint desde la opción Manage Integration Settings de la consola de Administración Central (evidentemente, después de instalar el Addin de Reporting Services 2008 para SharePoint Technologies), nos encontraremos el siguiente error.
En ambos casos, se trata del mismo error, ya sea al acceder al directorio virtual de ReportServer o al intentar configurar la integración de Reporting Services 2008 con SharePoint Technologies. Al menos, es a la conclusión a la que he llegado con las pruebas realizadas.
El error en sí, no se muestra demasiado descriptivo, quiero decir, que con los datos aportados no se puede intuir claramente el origen del error ni las tareas a realizar para su corrección, lo que suele crear un poco de confusión hasta su posterior diagnóstico y resolución. Tras Googlear un buen rato en busca de ayuda, no encontré ninguna solución al problema (quizás sea mi torpeza). Al final, utilicé el viejo método de ingeniería Prueba y Error (muy conocido en mi profesión, jeje ;-), comprobando que se trataba de un problema de permisos, como paso a detallar a continuación.
El primer paso que realicé fue conceder permisos elevados a la cuenta de servicio utilizada para iniciar el servicio SQL Server Reporting Services. En mi caso, le hice Administrador del Dominio (con buena picha bien se jode, dicen en mi barrio ;-). La verdad, que estuve buscando brevemente para averiguar cuál es la recomendación de permisos para esta cuenta, y no encontré nada. Imagino que en un servidor miembro del dominio, sería suficiente con ser Administrador local de la máquina (como mucho). De hecho, imagino que con menos permisos debería funcionar también, pero de momento, no tengo claro cuáles son. Tras realizar el cambio de permisos, es necesario reiniciar el servicio SQL Server Reporting Services, por ejemplo, desde la consola services.msc.
Ahora, al intentar acceder al directorio virtual de Reporting Services 2008, sale otro error, el error Object referente not set to an instante of an object (bueno, hemos dado un paso):
Revisando el Visor de Sucesos de Aplicación, encontramos un error nuevo, aunque mucho más claro (cara a su resolución) que el error inicial. Se trata en un error de acceso a SQL Server, bueno, mejor dicho, de ausencia de permisos en bases de datos de SQL Server (en particular, en una base de datos de contenido de MOSS), como se muestra en la siguiente pantalla capturada:
A continuación se incluye el detalle de este error:
- Source: Windows SharePoint Service
- Event ID: 3760
- Task Category: Database
- Level: Error
- Keywords: Classic
- User: N/A
- Computer: miniguille2k8.mini.guillesql.local
- Description: SQL Database WSS_Content_SharedServices on SQL Server instance miniguille2k8 not found. Additional error information from SQL Server is included below. Cannot open database WSS_Content_SharedServices requested by the login. The login failed. Login failed for user MINI\SQLSvc.
Llegados a este punto, podemos dar el problema como solventado. A simple vista, uno puede pensar que no, ya que seguimos sin poder acceder al directorio virtual de ReportServer. Vale, es cierto. Pero eso es sólo parte de la verdad. Lo que quiero decir, es que la otra parte de la verdad es configurar la integración de Reporting Services en SharePoint (la opción Manage integration settings de la consola de Administración Central) y seguidamente conceder permisos sobre las bases de datos de contenido de MOSS, y esta última tarea debe realizarse desde la opción Grant database access de la sección Reporting Services en la Consola de Administración Central (adjunto pantalla captura).
Evidentemente, si damos los permisos de dbowner manualmente sobre las bases de datos de contenido al usuario utilizado para iniciar el servicio de Reporting Services, también nos será suficiente, pero lo suyo (o al menos yo lo veo así) es utilizar la opción Grant database access de la consola de Administración Central de MOSS, que está pa eso.
Finalmente, objetivo cumplido. El acceso al directorio virtual de ReportServer se realiza con éxito, y la integración con SharePoint queda configurada.
Como siempre, espero que os sirva.