El servicio de Windows AD FS no pudo iniciarse debido a un error de carga de configuración

Microsoft.ActiveDirectoryFederationServices2012R2.FederationServerServiceConfigurationInitializationErrorMonitor (UnitMonitor)

Knowledge Base article:

Resumen

El servicio de Windows AD FS no pudo iniciarse porque la base de datos de configuración de AD FS no pudo cargarse correctamente.

Si el servicio de Windows AD FS se inicia correctamente, el monitor cambiará al estado verde y la alerta crítica original se solucionará automáticamente.

Causas

Estas son las causas posibles de este evento:

Causa

Solución

El equipo remoto que hospeda la base de datos de SQL Server no es accesible.

Use Ping.exe para comprobar que puede accederse al equipo remoto desde el servidor de federación.

El equipo que ejecuta SQL Server y que está configurado para almacenar los datos de configuración de AD FS no se inició.

Inicie la instancia de SQL Server que hospeda la base de datos de configuración de AD FS.

Para comprobar que el servicio está ejecutándose, ejecute "sc query mssqlserver" en el equipo donde se hospeda SQL Server y asegúrese de que el estado sea STATE = RUNNING. Esto asume que se usa la instancia predeterminada de SQL Server. Cada instancia de base de datos de SQL Server tiene sus propios servicios; para comprobar sus nombres, consulte el nodo Servicios en Administrador del servidor. Cuando encuentre el nombre de instancia correspondiente, use el comando "net start mssqlserver" en el equipo remoto que ejecute SQL Server para iniciar el servicio.

El Windows Internal Database (WID) que está configurado para almacenar los datos de configuración de AD FS no se inició.

Inicie la instancia WID que hospeda la base de datos AdfsConfiguration.

Para comprobar que el servicio está ejecutándose, ejecute "sc query mssql$microsoft##ssee" en el equipo que hospeda el servicio de federación y asegúrese de que el estado sea STATE = RUNNING. Tenga en cuenta que este es el nombre de la instancia de WID predeterminada que está en uso. Ejecute "net start mssql$microsoft##sse" en el equipo del servidor de federación para iniciar el servicio.

La identidad del servicio de Windows AD FS no puede iniciar sesión en SQL Server.

Compruebe que SQL Server se ejecute en una cuenta integrada como NetworkService o LocalSystem. Si SQL Server se ejecuta en una cuenta de dominio, compruebe que el nombre de entidad de seguridad de servicio (SPN) de la cuenta se haya registrado correctamente.

Para comprobar el SPN, use la sintaxis siguiente con el comando SetSpn.exe:

SetSpn -L <serviceaccount>

The output of this command should have MSSQLSvc/<SQL server name>.

Otra posible resolución para este error es conectarse a SQL Server mediante SQL Management Studio y comprobar las opciones siguientes:

  • Confirm that the AD FS Windows service identity is present under the Security->Logins node in the SQL console.

  • Confirm that the AD FS Windows service identity is present under Databases->AdfsConfiguration->Security->Users, and that it owns the IdentityServerPolicy schema.

La identidad del servicio de Windows AD FS puede iniciar sesión en SQL Server, pero no tiene acceso a la base de datos AdfsConfiguration.

Use SQL Server Management Studio para que la identidad del servicio de Windows AD FS sea el propietario del esquema IdentityServerPolicy (consulte la resolución anterior).

SQL Server está superando el tiempo de espera.

Estas son las resoluciones posibles para este error:

  • Compruebe las otras bases de datos hospedadas en el equipo para determinar la carga de consultas en la instalación de SQL Server.

  • Considere la opción de hospedar AdfsConfiguration en un servidor dedicado.

  • Reinicie SQL Server.

Los extremos de AD FS no tienen configurados correctamente los permisos de ACL.

Vuelva a ejecutar el Asistente para configuración de servidor de federación de AD FS para reparar los permisos de ACL de los extremos especificados.

Resoluciones

Consulte lo indicado anteriormente.

Element properties:

TargetMicrosoft.ActiveDirectoryFederationServices2012R2.FederationServer
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.2SingleEventLog2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
El servicio de Windows AD FS no pudo iniciarse debido a un error de carga de configuración
La base de datos de configuración de AD FS no pudo cargarse correctamente. Error al iniciar el servicio de Windows AD FS.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.ActiveDirectoryFederationServices2012R2.FederationServerServiceConfigurationInitializationErrorMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.ActiveDirectoryFederationServices2012R2.FederationServer" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" ConfirmDelivery="true">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.ActiveDirectoryFederationServices2012R2.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.ActiveDirectoryFederationServices2012R2.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.ActiveDirectoryFederationServices2012R2.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>