Не удалось запустить службы федерации Active Directory Windows из-за ошибки загрузки конфигурации

Microsoft.ActiveDirectoryFederationServices.2016.FederationServerServiceConfigurationInitializationErrorMonitor (UnitMonitor)

Knowledge Base article:

Сводка

Произошла ошибка запуска служб федерации Active Directory Windows, поскольку не удалось правильно загрузить базу данных конфигураций служб федерации Active Directory.

Если службы федерации Active Directory Windows успешно запущены, индикатор состояния монитора изменится на зеленый, а исходное критическое оповещение будет автоматически устранено.

Причины

Ниже рассмотрены возможные причины возникновения этого события.

Причина

Решение

Удаленный компьютер, где размещается база данных SQL Server, недоступен.

Используйте команду Ping.exe, чтобы проверить, доступен ли удаленный компьютер с сервера федерации.

Компьютер, где запущен сервер SQL Server и который настроен для хранения данных конфигурации служб федерации Active Directory, не запущен.

Запустите экземпляр сервера SQL Server, на котором размещается база данных AdfsConfiguration.

Убедитесь, что служба выполняет команду "sc query mssqlserver" на компьютере, где размещен сервер SQL Server, и что выполняется условие STATE = RUNNING. Это предполагает, что используется экземпляр сервера SQL Server по умолчанию. Каждый экземпляр базы данных сервера SQL Server имеет свои службы, имена которых можно проверить, просмотрев узел "Службы" в диспетчере серверов. При размещении экземпляра с соответствующим именем запустите службу при помощи команды "net start mssqlserver" на удаленном компьютере, где запущен сервер SQL Server.

Внутренняя база данных Windows (WID), настроенная для хранения данных конфигурации служб федерации Active Directory, не запущена.

Запустите экземпляр WID, на котором размещается база данных AdfsConfiguration.

Убедитесь, что служба выполняет команду "sc query mssql$microsoft##ssee" на компьютере, где размещена служба федерации, и что выполняется условие STATE = RUNNING. Обратите внимание, что используется имя экземпляра WID по умолчанию. Запустите службу при помощи команды "net start mssql$microsoft##ssee" на компьютере сервера федерации.

Удостоверение служб федерации Active Directory Windows не может осуществить вход на сервер SQL Server.

Убедитесь, что сервер SQL Server запущен через встроенную учетную запись, например NetworkService или LocalSystem. Если сервер SQL Server запущен через учетную запись домена, убедитесь, что имя субъекта-службы (SPN) правильно зарегистрировано.

Чтобы проверить имя субъекта-службы, используйте следующий синтаксис в команде SetSpn.exe:

SetSpn -L <serviceaccount>

Выходные данные этой команды должны иметь следующий вид: MSSQLSvc/<Имя SQL Server>.

Еще одним возможным решением этой ошибки может быть подключение к серверу SQL Server с использованием среды SQL Management Studio и подтверждение следующих параметров.

  • Убедитесь, что удостоверение службы Windows служб федерации Active Directory присутствует в узле «Безопасность» -> «Имена входа» в консоли SQL.

  • Убедитесь, что удостоверение службы Windows служб федерации Active Directory присутствует в разделе «Базы данных» -> «Конфигурация AD FS» -> «Безопасность» -> «Пользователи» и включает схему IdentityServerPolicy.

Удостоверение службы Windows служб федерации Active Directory может выполнить вход на сервер SQL Server, но не имеет доступа к базе данных AdfsConfiguration.

Используя среду SQL Server Management Studio, сделайте удостоверение служб федерации Active Directory Windows владельцем схемы IdentityServerPolicy (см. предыдущее решение).

Истекает время ожидания сервера SQL Server.

Ниже приведены возможные способы устранения ошибки.

  • Определите нагрузку при обработке запросов во время установки сервера SQL Server, изучив другие базы данных, которые размещены на компьютере.

  • Разместите базу данных AdfsConfiguration на выделенном сервере.

  • Перезапустите сервер SQL Server.

Для конечных точек служб федерации Active Directory неправильно настроены разрешения ACL.

Повторно запустите мастер настройки сервера федерации служб федерации Active Directory, чтобы исправить разрешения ACL для указанных конечных точек.

Решения

См. выше.

Element properties:

TargetMicrosoft.ActiveDirectoryFederationServices.2016.FederationServer
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLog2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Не удалось запустить службы федерации Active Directory Windows из-за ошибки загрузки конфигурации
Не удается правильно загрузить базу данных конфигурации служб федерации Active Directory. Не удалось запустить службы федерации Active Directory Windows.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.ActiveDirectoryFederationServices.2016.FederationServerServiceConfigurationInitializationErrorMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.ActiveDirectoryFederationServices.2016.FederationServer" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.ActiveDirectoryFederationServices.2016.FederationServerServiceConfigurationInitializationErrorMonitor_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="FirstEventRaised" MonitorTypeStateID="FirstEventRaised" HealthState="Error"/>
<OperationalState ID="SecondEventRaised" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>$Target/Property[Type="Microsoft.ActiveDirectoryFederationServices.2016.FederationServer"]/ADFSEventLog$</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">220</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>MatchesMOM2005RegularExpression</Operator>
<Pattern>(^AD FS$)</Pattern>
</RegExExpression>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>$Target/Property[Type="Microsoft.ActiveDirectoryFederationServices.2016.FederationServer"]/ADFSEventLog$</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">100</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>MatchesMOM2005RegularExpression</Operator>
<Pattern>(^AD FS$)</Pattern>
</RegExExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>