Команда MDS Validate Version в SQL Server не выполняется из-за ошибки сервера.

Эта статья поможет устранить проблему, из-за которой команда проверки версии служб Master Data Services (MDS) завершается ошибкой сервера в SQL Server.

Исходная версия продукта: SQL Server
Исходный номер базы знаний: 2711671

Симптомы

Рассмотрим следующий сценарий:

  • Администратор устанавливает Microsoft SQL Server и развертывает веб-сайт MDS с помощью новой учетной записи пула приложений.

  • Позже перейдите на веб-сайт MDS, а затем выполните следующие действия:

    1. Выберите страницу "Управление версиями".

    2. Выберите команду "Проверить версию " на верхней панели инструментов.

    3. Установите флажок "Проверить " для модели.

    4. Убедитесь, что вы хотите проверить эту версию? А затем нажмите кнопку "ОК".

В этом сценарии в окне браузера появится следующее сообщение об ошибке:

Ошибка сервера в приложении '/'.
Произошла ошибка при обработке типа запроса сообщения "ValidationGetRequest". Дополнительные сведения см. в разделе об исключении.
Описание: произошло необработанное исключение во время выполнения текущего веб-запроса. Чтобы получить дополнительную информацию об ошибке и ее источнике в коде, изучите трассировку стека.
Сведения об исключении: Microsoft.MasterDataServices.WebUI.ServiceAdapterException: произошла ошибка при обработке типа запроса сообщения "ValidationGetRequest". Дополнительные сведения см. в разделе об исключении.
Ошибка в исходном коде
Во время выполнения текущего веб-запроса было создано необработанное исключение. Сведения о источнике и расположении исключения можно определить с помощью следующей трассировки стека исключений.
Трассировка стека
[ServiceAdapterException: произошла ошибка при обработке типа запроса сообщения "ValidationGetRequest". Дополнительные сведения см. в разделе об исключении.]
Microsoft.MasterDataServices.WebUI.ServiceAdapter.InspectResponseForErrors(messageRequest request, MessageResponse response) +687
Microsoft.MasterDataServices.WebUI.ServiceAdapter.ExecuteRequest(операция MdmServiceOperation 2, запрос 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 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

Примечание.

Аналогичная проблема может возникнуть, когда пользовательское приложение Microsoft платформа .NET Framework использует класс MDS API ValidationGetRequest. Эта проблема описана в классе ValidationGetRequest.

Причина

Эта проблема возникает, потому что новым учетным записям не предоставляется разрешение VIEW SERVER STATE.

При использовании служебной программы диспетчер конфигурации Master Data Services для создания веб-сайта MDS средство запрашивает учетные данные учетной записи пользователя пула приложений для удостоверения пула приложений.

Затем после выбора сервера MDS и базы данных средство предоставляет разрешения учетной записи. Указанная учетная запись учетных данных пула приложений предоставляет несколько разрешений в указанной базе данных MDS и добавляется MDS_ServiceAccounts в группу локальных пользователей и mds_exec роль базы данных в указанном каталоге баз данных MDS.

Однако разрешение VIEW SERVER STATE не предоставляется главной базе данных. Иногда учетные записи Windows могут иметь это разрешение в SQL Server. Однако по умолчанию новые учетные записи не получают этого разрешения.

Разрешение VIEW SERVER STATE полезно для запроса брокера служб с помощью sys.dm_broker_activated_tasks динамического административного представления (DMV) для проверки хода выполнения фонового действия в очереди.

Веб-приложение MDS выполняет хранимую процедуру exec mdm.udpValidationIsRunning , чтобы проверить ход проверки. Однако учетные данные пула приложений, выполняющие запрос, не имеют разрешений на динамическое административное представление и получает следующее сообщение об ошибке:

У пользователя нет разрешения на выполнение этого действия.

Следующая инструкция в процедуре завершается ошибкой, и веб-страница не отображается:

IF EXISTS (SELECT 1 FROM sys.dm_broker_activated_tasks
    WHERE procedure_name = N'[mdm].[udpValidationQueueActivate]')

Обходное решение

Чтобы обойти эту проблему, используйте учетную запись, которая является членом предопределенной роли сервера системного администратора, чтобы вручную предоставить разрешения учетной записи, назначенной для запуска пула приложений MDS.

Например, чтобы вручную предоставить разрешения, выполните следующие команды:

USE Master;

GO

GRANT VIEW SERVER STATE TO <domain\MdsWebAppAccount>;

Примечание.

Домен заполнителя <\MdsWebAppAccount> представляет правильную учетную запись конфигурации.

Дополнительная информация

Чтобы определить, связана ли эта проблема с VIEW SERVER STATE разрешением, запустите трассировку профилировщика SQL, а затем найдите следующее сообщение об ошибке при выполнении инструкций, как описано в разделе "Причина ".

У пользователя нет разрешения на выполнение этого действия.

Затем проверьте учетную запись для эффективных разрешений и добавьте разрешения, если это необходимо. Для этого выполните следующие шаги.

  1. Откройте Management Studio и подключитесь к ядру СУБД SQL Server, в котором размещается каталог MDS.

  2. В области обозреватель объектов разверните папку "Безопасность".

  3. Найдите учетную запись, используемую для запуска пула приложений IIS MDS.

  4. Щелкните правой кнопкой мыши учетную запись и выберите пункт "Свойства".

  5. Выберите страницу "Защищаемые объекты ". В нижней области выберите вкладку "Действующий ".

    • Если указано действующее разрешение VIEW SERVER STATE , это, скорее всего, не проблема.

    • Если разрешение не указано, вернитесь на вкладку "Явные " в диалоговом окне "Свойства входа ", а затем установите флажок "Разрешения состояния сервера просмотра " для предоставления разрешений учетной записи.

Ссылки

Дополнительные сведения об использовании веб-приложения Master Data Manager для проверки данных см. в следующих статье: