Le service Windows AD FS n'a pas pu démarrer à cause d'une erreur de chargement de la configuration.

Microsoft.ActiveDirectoryFederationServices2012R2.FederationServerServiceConfigurationInitializationErrorMonitor (UnitMonitor)

Knowledge Base article:

Résumé

Le service Windows AD FS n'a pas pu démarrer car la base de données de configuration d'AD FS n'a pas pu être chargé correctement.

Si le service AD FS est démarré correctement, le système de surveillance passera à l'état vert et l'alerte critique d'origine sera résolue automatiquement.

Causes

Vous trouverez ci-dessous les causes possibles de cet événement :

Cause

Solution

L'ordinateur distant qui héberge la base de données SQL Server est inaccessible.

Utilisez Ping.exe pour vérifier que l'ordinateur distant est accessible depuis le serveur de fédération.

L'ordinateur qui exécute SQL Server et qui est configuré pour stocker les données de configuration d'AD FS n'est pas démarré.

Démarrez l'instance de SQL Server qui héberge la base de données de configuration AdfsConfiguration.

Vérifiez que le service exécute « sc query mssqlserver » sur l'ordinateur qui héberge SQL Server, et vérifiez que STATE = RUNNING. On considère que l'instance par défaut de SQL Server est utilisée. Chaque instance de base de données SQL Server dispose de ses propres services, et vous pouvez vérifier leurs noms en accédant au nœud Services dans le Gestionnaire de serveurs. Lorsque vous localisez le nom d'instance correspondant, démarrez le service en utilisant « net start mssqlserver » sur l'ordinateur distant qui exécute SQL Server.

La base de données interne Windows (WID) qui est configurée pour stocker les données de configuration d'AD FS n'est pas démarrée.

Démarrez l'instance de WID qui héberge la base de données de configuration AdfsConfiguration.

Vérifiez que le service exécute « sc query mssql$microsoft##ssee » sur l'ordinateur qui héberge le service de fédération, et vérifiez que STATE = RUNNING. Notez que le nom de l'instance WID par défaut est utilisé. Démarrez le service en utilisant net start mssql$microsoft##ssee sur l'ordinateur du serveur de fédération.

L'identité du service Windows AD FS ne peut pas se connecter à SQL Server.

Vérifiez que SQL Server est exécuté sous un compte intégré, comme NetworkService ou LocalSystem. Si SQL Server est exécuté sous un compte de domaine, vérifiez que le nom de principal du service (SPN) du compte a bien été enregistré.

Pour vérifier le SPN, utilisez la syntaxe suivante avec la commande SetSpn.exe :

SetSpn -L <serviceaccount>

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

Une autre résolution possible de ce problème peut être de se connecter à SQL Server avec SQL Management Studio et de vérifier les paramètres suivants :

  • 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.

L'identité du service Windows AD FS peut se connecter à SQL Server, mais n'a pas accès à la base de données AdfsConfiguration.

Avec SQL Server Management Studio, faites de l'identité du service Windows AD FS le propriétaire du schéma IdentityServerPolicy (voir la résolution précédente).

La communication avec SQL Server a expiré.

Vous trouverez ci-dessous les résolutions possibles de cette erreur :

  • Déterminez la charge de requêtes sur l'installation SQL Server en observant les autres bases de données hébergées sur l'ordinateur.

  • Considérez l'hébergement d'AdfsConfiguration sur un serveur dédié.

  • Redémarrez SQL Server.

Les autorisations ACL des points de terminaison d'AD FS ne sont pas configurées correctement.

Exécutez l'Assistant de configuration du serveur de fédération AD FS pour réparer les autorisations ACL pour les points de terminaison spécifiés.

Résolutions

Voir plus haut.

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
Le service Windows AD FS n'a pas pu démarrer à cause d'une erreur de chargement de la configuration.
La base de données de configuration AD FS n'a pas pu être chargée correctement. Le service Windows AD FS n'a pas pu démarrer.
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>