none
Error interno en el servidor de informes. Vea el registro de errores para obtener más detalles SSRS 2008

    Question

  • Hola cibercompañeros, aqui mi problema, haber si alguien puede ayudarme...

    Tengo instalado en Windows Xp SP3 SQL Server 2008 Express with Advanced Services (mas que nada por Reporting Services)

    Migré de SQL Server 2005 a SQL Server 2008, así que importé la base de datos de SS 2005 a SS 2008, y convertí todos los reportes a esta nueva versión.

    Desarrollé una aplicación en Net Framework 2.0 (con VS2005) con servicios web, y ahi mismo tengo algunos controles ReportViewer para visualizar los reportes.

    El punto es que los reportes se ven de manera 'local' y no se ven de manera 'remota', es decir, como desarrollo en el equipo donde esta el servidor de reportes, pues no hay problema, los reportes se pueden ver y procesar, el problema es cuando acceso de manera remota, es decir, desde otro equipo de aqui de la red local.

    Necesito una solución fácil´y rápida, además el programa que desarrollé aun no se implemente completamente, lo que quiere decir que estamos en la fase de pruebas, así que lo que es mas fácil (porque no cuento con servidores Windows server's ni nada de eso) es habilitar el servicio web a usuarios 'anóminos' que no necesiten tener credenciales para ver los reportes desde el programa en otro equipo de la red que no sea el servidor.

    He encontrado algunas 'soluciones', pero no me han servido, aquí los recursos:

    http://blogs.msdn.com/jameswu/archive/2008/07/15/anonymous-access-in-sql-rs-2008.aspx (lo segui al pie de la letra y nada, ni en modo local ni en remoto, me marcaba un error de configuración del servidor)

    http://msmvps.com/blogs/jaimirg/archive/2008/12/10/error-401-3-en-sql-reporting-services-2008.aspx (este paso ya lo hice, y lo tengo ahora activado)

    y lo que hice fue modificar el archivo de configuracion web.config de la siguiente manera:

    ....
    <authentication mode="Windows" />
        <authorization>
          <allow users="*" />
        </authorization>
        <identity impersonate="true" userName="UsuarioLocal" password="contraseñadeusuariolocal" />
    ....

    y el resultado de esto es que ya puedo acceder de manera local con el programa, e inclusive de manera remota a través de Internet Explorer (con la url http://servidorbd:8080/ReportServer_SqlExpress) y efectivamente muestra los reportes sin pedirme nada de datos.

    El problema es cuando trato de acceder a través del programa .NET 2.0, porque me marca un error interno del servidor, y cuando reviso el log de los errores, tengo la siguiente excepción:

    library!ReportServer_0-12!12cc!09/01/2009-13:57:12:: e ERROR: Throwing Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: Error interno en el servidor de informes. Vea el registro de errores para obtener más detalles., ;
     Info: Microsoft.ReportingServices.Diagnostics.Utilities.InternalCatalogException: Error interno en el servidor de informes. Vea el registro de errores para obtener más detalles. ---> System.InvalidOperationException: No se puede obtener el nombre del equipo.
       en System.Environment.get_MachineName()
       en Microsoft.ReportingServices.Diagnostics.WebUtil.IsWellKnowLocalServer(String server)
       en Microsoft.ReportingServices.Diagnostics.Sku.IsLocalValue(String value)
       en Microsoft.ReportingServices.Diagnostics.SkuUtil.IsLocal(String sqlConnectionString, LocalDbServerVerifier localDbServerVerifier)
       en Microsoft.ReportingServices.Diagnostics.SkuUtil.EnsureCorrectEdition(SkuType rsSku, SkuType sqlSku, String connectionString, LocalDbServerVerifier localDbServerVerifier, Boolean checkRestrictedSkus)
       en Microsoft.ReportingServices.Diagnostics.Sku.EnsureCorrectEdition(SqlConnection sqlConn, String connectionString, Boolean checkRestrictedSkus)
       en Microsoft.ReportingServices.Library.ConnectionManager.EnsureCorrectEdition()
       en Microsoft.ReportingServices.Library.ConnectionManager.ConnectStorage()
       en Microsoft.ReportingServices.Library.ConnectionManager.VerifyConnection()
       en Microsoft.ReportingServices.Library.Storage.NewStandardSqlCommand(String storedProcedureName)
       en Microsoft.ReportingServices.Library.DBInterface.GetOneConfigurationInfo(String key)
       en Microsoft.ReportingServices.Library.CachedSystemProperties.GetSystemProperty(String name)
       en Microsoft.ReportingServices.Library.CachedSystemProperties.Get(String name)
       en Microsoft.ReportingServices.Library.RSService.get_MyReportsEnabled()
       en Microsoft.ReportingServices.Library.RSService.PathToInternal(String source)
       en Microsoft.ReportingServices.Diagnostics.CatalogItemContext.SetPath(String path, Boolean validate, Boolean convert, Boolean translate)
       en Microsoft.ReportingServices.Diagnostics.CatalogItemContext.SetPath(String path)
       en Microsoft.ReportingServices.WebServer.SessionStarterAction..ctor(ISessionID soapService, RSService service, String reportPath, String historyId)
       --- Fin del seguimiento de la pila de la excepción interna ---


    No sé si será porque el programa está en .NET 2.0 o algo así, pero agradeceré su ayuda, y si saben de otra manera para hacer esto (insisto no cuento con un servidor Windows Server), ayudeme!!! por favor...
    Tuesday, September 01, 2009 10:21 PM

Answers