JulesE
He configurado 2 servidores de informes PowerBI en una implementación escalada con un NLB (https://docs.microsoft.com/en-us/sql/reporting-services/report-server/configure-a-report-server-on -a…)
Al abrir la URL del balanceador de carga, puedo iniciar sesión, crear carpetas y asignar permisos. Pero cuando intento abrir un informe de Powerbi o intento cargar un informe, se produce un error.
En RSPortal.log encuentro el siguiente error:
2019-09-25 17:52:47.1644|ERROR|41|El servidor remoto devolvió un error: (400) Solicitud incorrecta.| ID de solicitud = s_c1a68a9f-38c0-4e89-ab27-045f4ca39fbe
Estoy usando Microsoft Power BI Report Server – Mayo de 2019.
Al crear un informe con PowerBI Desktop para Reporting Services (también versión de mayo de 2019) e intentar guardar ese informe en el servidor de informes, aparece el siguiente mensaje de error:
Me alegraría si alguien puede ayudar.
Gracias,
JE
MariusD
En respuesta a hassam11dic
Hola,
¿Ha configurado también ReportServerURL en el archivo rsreportserver.config? Debería ser similar a esto:
Saludos,
Mario
JulesE
Sin la configuración de NLB todo funciona bien.
Utilicé el lanzamiento de mayo:
@JulesE escribió:
He configurado 2 servidores de informes PowerBI en una implementación escalada con un NLB (https://docs.microsoft.com/en-us/sql/reporting-services/report-server/configure-a-report-server-on -a…)
Al abrir la URL del balanceador de carga, puedo iniciar sesión, crear carpetas y asignar permisos. Pero cuando intento abrir un informe de Powerbi o intento cargar un informe, se produce un error. En RSPortal.log encuentro el siguiente error:
2019-09-25 12:14:38.6642|ERROR|6|Se produjo una excepción OData: System.Net.WebException: el servidor remoto devolvió un error: (400) Solicitud incorrecta.
en System.Net.HttpWebRequest.GetResponse()
en Microsoft.ReportingServices.Portal.ODataWebApi.Utils.PbixReportHelper.ShouldReShred(entidad PowerBIReport, Uri basePortalUrl, registrador ILogger, IPrincipal userPrincipal, String reportServerHostName)
en Microsoft.ReportingServices.Portal.ODataWebApi.Common.CatalogItemControllerHelper`1.GetItem (clave de cadena)
en Microsoft.ReportingServices.Portal.ODataWebApi.V2.Controllers.CatalogItemsController.GetEntity(String key, String castName)
en Microsoft.ReportingServices.Portal.ODataWebApi.Controllers.Reflection.EntitySetReflectionODataController`1.GetRoot(ODataPath oDataPath, Int32& index)
en Microsoft.ReportingServices.Portal.ODataWebApi.Controllers.Reflection.ReflectionODataController`1.Get(ODataPath oDataPath)
en lambda_method(Cierre, Objeto, Objeto[] )
en System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.b__9(Instancia de objeto, Objeto[] parámetros del método)
en System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, argumentos IDictionary`2, CancellationToken cancellationToken)
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Filters.ActionFilterAttribute.d__5.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Web.Http.Filters.ActionFilterAttribute.d__5.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Filters.ActionFilterAttribute.d__0.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Controllers.ActionFilterResult.d__2.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoverSiguiente().| ID de solicitud = s_283c6c52-ba29-4b6b-b0da-263596ff319c Me alegraría si alguien puede ayudar.
Gracias,
JE
hassam11dic
En respuesta a JulesE
hola jules
Lo solucionaste tengo el mismo problema
d_gosbell
En respuesta a hassam11dic
Los pasos para configurar Power BI Report Server en un clúster NLB son los mismos que para configurar SSRS en un clúster. El error que está viendo probablemente significa que no hizo el paso 3 de lo siguiente: https://docs.microsoft.com/en-us/sql/reporting-services/report-server/configure-a-report-server-on -a…
Cuando carga un informe o publica uno desde Power BI Desktop, sucede en 2 pasos. El primer paso es que el servidor carga el archivo en una carpeta local temporal, luego procesa el archivo y lo agrega a la base de datos del servidor de informes. Si su configuración BackConnectHostName no está configurada correctamente, el segundo paso puede volver al balanceador de carga y ser redirigido a uno de los otros nodos que no tendrán el archivo pbix en su sistema de archivos local. (Nota: después de cambiar esta configuración, creo que tendrá que reiniciar para que surta efecto)
hassam11dic
En respuesta a d_gosbell
El paso 3 es sencillo, intenté con el mismo error
El ingeniero de MS también se menciona a continuación
Agregue el nombre de Vitrual Server (nombre del servidor vip) y el FQDN del nodo (nodo1/nodo2) en ambos nodos
Para SSL, como discusión previa, considere registrar el Certificado en el nombre del Servidor Virtual correcto (nombre del servidor vip)
Por otro lado, intente actualizar el tipo de autenticación de la siguiente manera:
Copia de seguridad de rsreportserver.config:
Actualizar:
Desde:
A:
hassam11dic
En respuesta a hassam11dic
url ssl: bi.dev.companyname.com.au
Nombre del servidor VIP/Balanceador de carga: bi.int.gslb.dev.companyname.au
BackConnectHostName: bi.int.gslb.dev.companyname.au (línea 1)
server1.com.au (línea 2 FQDN nombre del servidor)
¿También es necesario registrar SSL en el balanceador de carga/VIP?
d_gosbell
En respuesta a hassam11dic
@hassam11dec escribió:
BackConnectHostName: bi.int.gslb.dev.companyname.au (línea 1)
server1.com.au (línea 2 FQDN nombre del servidor)
Esto no está bien. El nombre del equilibrador de carga no es importante. El BackConnectHostname debe ser el FQDN de la URL a la que navegan los usuarios que parece es bi.dev.companyname.com.au. La idea de esta configuración es que si el servidor responde a una solicitud enviada a bi.dev.companyname.com.au, sabe que se trata de una dirección local.
¿También es necesario registrar SSL en el balanceador de carga/VIP?
Depende de cómo tengas configurado tu SSL. Por lo general, puede configurar el balanceador de carga para terminar la conexión SSL. O puede hacer que el balanceador de carga haga transferencia SSL y configurar el certificado para bi.dev.companyname.com.au en ambos nodos. Realmente no soy un experto en equilibradores de carga, pero tenemos nuestra configuración para realizar el paso de SSL, ya que mantiene la conexión cifrada desde el cliente hasta el nodo.
hassam11dic
En respuesta a d_gosbell
Hola
Intenté todo todavía atascado con el problema 400
ssl: bi.dev.companyname.com.au (instalado en ambos nodos)
La única opción 1 adjunta solo funciona si uno de los servidores está activo y el otro detenido (archivo pbix cargado y sin error 400) con el nombre VIP mencionado en BackConnectionHostname (bi.int.gslb…..)
Resto todas las opciones dan error 400
BackConnectionHostName
d_gosbell
En respuesta a hassam11dic
@hassam11dec escribió:
con el nombre VIP mencionado en BackConnectionHostname (bi.int.gslb…..)
Como mencioné anteriormente, para BackConnectHostName debe usar el nombre de host que sus usuarios ingresan en sus navegadores (probablemente lo que ha enumerado como URL de SSL) no el nombre de su balanceador de carga.
MariusD
En respuesta a hassam11dic
Hola,
¿Ha configurado también ReportServerURL en el archivo rsreportserver.config? Debería ser similar a esto:
Saludos,
Mario
JulesE
En respuesta a MariusD
Hola Marius,
Gracias. Después de agregar el fqdn correcto en la URL del servidor de informes, puedo publicar informes de Powerbi y puedo crear fuentes de datos.
Es extraño que el artículo de Microsoft notifique explícitamente no cambiar la URL del servidor de informes mientras sea la solución.
https://docs.microsoft.com/en-us/sql/reporting-services/report-server/configure-a-report-server-on-a…
hassam11dic
En respuesta a MariusD
Marius si por supuesto
es el ssl (bi.dev.compname.edu.au) en rsreportserver.config junto con la verificación de la clave de la máquina a continuación
…..
…..
JulesE
Cuando elimino la configuración del balanceador de carga, puedo abrir y cargar informes sin errores.
Utilicé el servidor de informes de PowerBI que puede publicar:
@JulesE escribió:
He configurado 2 servidores de informes PowerBI en una implementación escalada con un NLB (https://docs.microsoft.com/en-us/sql/reporting-services/report-server/configure-a-report-server-on -a…)
Al abrir la URL del balanceador de carga, puedo iniciar sesión, crear carpetas y asignar permisos. Pero cuando intento abrir un informe de Powerbi o intento cargar un informe, se produce un error. En RSPortal.log encuentro el siguiente error:
2019-09-25 12:14:38.6642|ERROR|6|Se produjo una excepción OData: System.Net.WebException: el servidor remoto devolvió un error: (400) Solicitud incorrecta.
en System.Net.HttpWebRequest.GetResponse()
en Microsoft.ReportingServices.Portal.ODataWebApi.Utils.PbixReportHelper.ShouldReShred(entidad PowerBIReport, Uri basePortalUrl, registrador ILogger, IPrincipal userPrincipal, String reportServerHostName)
en Microsoft.ReportingServices.Portal.ODataWebApi.Common.CatalogItemControllerHelper`1.GetItem (clave de cadena)
en Microsoft.ReportingServices.Portal.ODataWebApi.V2.Controllers.CatalogItemsController.GetEntity(String key, String castName)
en Microsoft.ReportingServices.Portal.ODataWebApi.Controllers.Reflection.EntitySetReflectionODataController`1.GetRoot(ODataPath oDataPath, Int32& index)
en Microsoft.ReportingServices.Portal.ODataWebApi.Controllers.Reflection.ReflectionODataController`1.Get(ODataPath oDataPath)
en lambda_method(Cierre, Objeto, Objeto[] )
en System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.b__9(Instancia de objeto, Objeto[] parámetros del método)
en System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, argumentos IDictionary`2, CancellationToken cancellationToken)
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Controllers.ApiControllerActionInvoker.d__0.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Filters.ActionFilterAttribute.d__5.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Web.Http.Filters.ActionFilterAttribute.d__5.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Filters.ActionFilterAttribute.d__0.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Controllers.ActionFilterResult.d__2.MoverSiguiente()
— Fin del seguimiento de la pila desde la ubicación anterior donde se lanzó la excepción —
en System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
en System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(tarea)
en System.Web.Http.Controllers.ExceptionFilterResult.d__0.MoverSiguiente().| ID de solicitud = s_283c6c52-ba29-4b6b-b0da-263596ff319c Me alegraría si alguien puede ayudar.
Gracias,
JE