Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Este artículo le ayuda a resolver el problema en el que el comando Validar versión de Master Data Services (MDS) produce un error de servidor en SQL Server.
Versión del producto original: SQL Server
Número de KB original: 2711671
Síntomas
Considere el caso siguiente:
Un administrador instala Microsoft SQL Server y, a continuación, implementa el sitio web de MDS mediante una nueva cuenta de grupo de aplicaciones.
Más adelante, vaya al sitio web de MDS y siga estos pasos:
Seleccione la página Administrar versiones .
Seleccione el comando Validar versión en la barra de herramientas superior.
Active la casilla Validar para Modelo.
Confirma el mensaje ¿Confirma que desea validar esta versión? y, a continuación, seleccione Aceptar.
En este escenario, recibirá el siguiente mensaje de error en la ventana del explorador:
Error del servidor en la aplicación '/'
Error al procesar el tipo de solicitud de mensaje "ValidationGetRequest". Consulte los detalles de la excepción para obtener más información.
Descripción: Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información acerca del error y en donde se originó en el código.
Detalles de excepción: Microsoft.MasterDataServices.WebUI.ServiceAdapterException: error al procesar el tipo de solicitud de mensaje "ValidationGetRequest". Consulte los detalles de la excepción para obtener más información.
Error de origen:
Se generó una excepción no controlada durante la ejecución de la solicitud web actual. La información sobre el origen y la ubicación de la excepción se puede identificar mediante el seguimiento de la pila de excepciones siguiente.
Seguimiento de la pila:
[ServiceAdapterException: error al procesar el tipo de solicitud de mensaje 'ValidationGetRequest'. Consulte los detalles de la excepción para obtener más información.
Microsoft.MasterDataServices.WebUI.ServiceAdapter.InspectResponseForErrors(MessageRequest request, MessageResponse response) +687
Microsoft.MasterDataServices.WebUI.ServiceAdapter.ExecuteRequest(operación MdmServiceOperation 2, solicitud TRequestType) +75
Microsoft.MasterDataServices.WebUI.ServiceAdapter.GetValidationStatus(Int32 versionInternalId, Nullable 1 entityInternalId, Nullable 1 memberType, String notificationUserName, IList 1 memberIds, Boolean omitSummary, Boolean omitIssuesList, Int32 pageNumber, Int32 pageSize, String sortColumn, SortDirection sortDirection) +678
Microsoft.MasterDataServices.WebUI.ServiceAdapter.GetValidationStatus(Int32 versionInternalId, Int32 pageNumber, Int32 pageSize, String sortColumn, SortDirection sortDirection) +133
Microsoft.MasterDataServices.WebUI.Common.Validations.LoadGrid() +355
Microsoft.MasterDataServices.WebUI.Audit.Dimensions.LoadGrid() +26
Microsoft.MasterDataServices.WebUI.Audit.Dimensions.EvaluateSelectedVersion() +267
Microsoft.MasterDataServices.WebUI.Audit.Dimensions.OnLoad(EventArgs e) +776
System.Web.UI.Control.LoadRecursive() +71
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064
Nota:
Puede producirse un problema similar cuando una aplicación personalizada de Microsoft .NET Framework usa la clase DE API mdS ValidationGetRequest. Este problema se documenta en: ValidationGetRequest Class.
Causa
Este problema se produce porque a las cuentas nuevas no se les concede el VIEW SERVER STATE
permiso.
Cuando se usa la utilidad Administrador de configuración de Master Data Services para crear un sitio web de MDS, la herramienta le pide las credenciales de la cuenta de usuario del grupo de aplicaciones para la identidad del grupo de aplicaciones.
A continuación, después de seleccionar el servidor MDS y la base de datos, la herramienta concede permisos a la cuenta. A la cuenta de credenciales del grupo de aplicaciones especificada se le conceden varios permisos en la base de datos MDS especificada y se agrega al MDS_ServiceAccounts
grupo de usuarios locales y al rol de base de datos dentro del mds_exec
catálogo de bases de datos MDS especificado.
Sin embargo, no se concede el VIEW SERVER STATE
permiso a la base de datos maestra. A veces, las cuentas de Windows pueden tener ese permiso en SQL Server. Sin embargo, de forma predeterminada, las nuevas cuentas no tienen ese permiso.
El VIEW SERVER STATE
permiso es útil para consultar service broker mediante la sys.dm_broker_activated_tasks
vista de administración dinámica (DMV) para comprobar el progreso de la actividad en segundo plano en cola.
La aplicación web MDS ejecuta internamente el procedimiento almacenado exec mdm.udpValidationIsRunning
para comprobar el progreso de la validación. Sin embargo, la credencial del grupo de aplicaciones que ejecuta la consulta no tiene permisos para la DMV y recibe el siguiente mensaje de error:
El usuario no tiene permiso para realizar esta acción.
La siguiente instrucción dentro del procedimiento falla, y la página web no se muestra.
IF EXISTS (SELECT 1 FROM sys.dm_broker_activated_tasks
WHERE procedure_name = N'[mdm].[udpValidationQueueActivate]')
Solución alternativa
Para solucionar este problema, use una cuenta que sea miembro del rol fijo de servidor administrador del sistema para conceder manualmente permisos a la cuenta designada para ejecutar el grupo de aplicaciones MDS.
Por ejemplo, para conceder manualmente los permisos, ejecute los siguientes comandos:
USE Master;
GO
GRANT VIEW SERVER STATE TO <domain\MdsWebAppAccount>;
Nota:
El dominio de marcador <de posición\MdsWebAppAccount> representa la cuenta correcta para la configuración.
Más información
Para determinar si este problema está relacionado con el VIEW SERVER STATE
permiso, ejecute un seguimiento de SQL Profiler y busque el siguiente mensaje de error al ejecutar las instrucciones tal y como se describe en la sección Causa :
El usuario no tiene permiso para realizar esta acción.
A continuación, compruebe la cuenta para obtener permisos efectivos y agregue los permisos si es necesario. Para ello, siga estos pasos:
Abra Management Studio y, a continuación, conéctese al motor de base de datos de SQL Server que hospeda el catálogo MDS.
En el panel Explorador de objetos, expanda la carpeta Seguridad.
Busque la cuenta que se usa para ejecutar el grupo de aplicaciones de IIS MDS.
Haga clic con el botón derecho en la cuenta y seleccione Propiedades.
Seleccione la página Elementos protegibles. En el panel inferior, seleccione la pestaña Efectivo .
Si aparece el permiso
VIEW SERVER STATE
efectivo, es probable que no sea el problema.Si el permiso no aparece, vuelva a la pestaña Explicit del cuadro de diálogo Propiedades de inicio de sesión y, a continuación, active la casilla Ver permisos de estado del servidor para conceder permisos a la cuenta.
Referencias
Para obtener más información sobre cómo usar la aplicación web Master Data Manager para validar los datos, consulte: