none
Acceso a Reporte

    Pregunta

  • Buen dia,

    Cree una paginas ASP para visualizar un reporte, cuando ejecuto la pagina desde el VS2017, puedo ver el reporte, enviar parametros y funciona sin problemas, publique la pagina y la cargue en IIS, la pagina inicia, pero genera el siguiente error.

    Porque desde VS si, y desde la publicacion no, en la misma pc.

    Gracias!!!

    lunes, 11 de diciembre de 2017 16:05

Respuestas

  • Seguramente es un problema de credenciales. Cuando ejecutas desde Visual Studio, se ejecuta con tu propia cuenta de usuario. Pero cuando ejecutas desde la versión publicada en IIS se ejecuta con las credenciales asignadas al Pool de la aplicación. Si configuraste el origen de datos del reporte para que utilice autenticación integrada, transmite esas mismas credenciales al servidor SQL, con lo que funciona con las tuyas pero no con las del Pool porque estas últimas no están autorizadas como Login en SQL Server.

    Solución 1: Da de alta en SQL Server un login que coincida con la cuenta del Pool, y dale permisos sobre la base de datos desde la que obtiene datos el informe.

    Solución 2: Cambia el origen de datos del informe de forma que use credenciales almacenadas (bien sea usuario SQL + password, o bien impersonar una cuenta de sistema) y añade en SQL el correspondiente Login con sus permisos.

    Solución 3: Cambia la cuenta del Pool para que sea una cuenta de sistema autorizada en SQL Server.

    Solución 4: Cambia en el web.config el modo de funcionamiento para que use impersonación, e impersona una cuenta autorizada en SQL Server. O bien impersona al usuario logado, pero eso solo funciona si se loguea con autenticación de Windows, y está autorizado en SQL Server, y no tienes "doble salto" (esto requeriría configurar más cosas).

    lunes, 11 de diciembre de 2017 19:59
    Moderador

Todas las respuestas

  • Seguramente es un problema de credenciales. Cuando ejecutas desde Visual Studio, se ejecuta con tu propia cuenta de usuario. Pero cuando ejecutas desde la versión publicada en IIS se ejecuta con las credenciales asignadas al Pool de la aplicación. Si configuraste el origen de datos del reporte para que utilice autenticación integrada, transmite esas mismas credenciales al servidor SQL, con lo que funciona con las tuyas pero no con las del Pool porque estas últimas no están autorizadas como Login en SQL Server.

    Solución 1: Da de alta en SQL Server un login que coincida con la cuenta del Pool, y dale permisos sobre la base de datos desde la que obtiene datos el informe.

    Solución 2: Cambia el origen de datos del informe de forma que use credenciales almacenadas (bien sea usuario SQL + password, o bien impersonar una cuenta de sistema) y añade en SQL el correspondiente Login con sus permisos.

    Solución 3: Cambia la cuenta del Pool para que sea una cuenta de sistema autorizada en SQL Server.

    Solución 4: Cambia en el web.config el modo de funcionamiento para que use impersonación, e impersona una cuenta autorizada en SQL Server. O bien impersona al usuario logado, pero eso solo funciona si se loguea con autenticación de Windows, y está autorizado en SQL Server, y no tienes "doble salto" (esto requeriría configurar más cosas).

    lunes, 11 de diciembre de 2017 19:59
    Moderador
  • Efectivamente, cambie el usuario de la aplicación, ahora si funciona,

    Mil gracias.

    lunes, 11 de diciembre de 2017 20:14