Fehler beim Starten des AD FS-Windows-Diensts aufgrund eines Fehlers beim Laden der Konfiguration

Microsoft.ActiveDirectoryFederationServices.2016.FederationServerServiceConfigurationInitializationErrorMonitor (UnitMonitor)

Knowledge Base article:

Zusammenfassung

Der AD FS-Windows-Dienst konnte nicht gestartet werden, da die AD FS-Konfigurationsdatenbank nicht richtig geladen werden konnte.

Wenn der AD FS-Windows-Dienst erfolgreich gestartet wird, wechselt der Monitor in einen "grünen" Bereich, und die ursprüngliche kritische Warnung wird automatisch aufgelöst.

Ursachen

Dieses Ereignis kann folgende Ursachen haben:

Ursache

Lösung

Der Remotecomputer, der die SQL Server-Datenbank hostet, ist nicht erreichbar.

Verwenden Sie "Ping.exe", um zu überprüfen, ob der Remotecomputer vom Verbundserver aus erreicht werden kann.

Der Computer, auf dem SQL Server ausgeführt wird und der zum Speichern von AD FS-Konfigurationsdaten konfiguriert ist, wurde nicht gestartet.

Starten Sie die SQL Server-Instanz, die die Datenbank "AdfsConfiguration" hostet.

Überprüfen Sie, ob der Dienst "sc query mssqlserver" auf dem Computer ausführt, der SQL Server hostet, und stellen Sie sicher, dass der Status "Wird ausgeführt" lautet. Voraussetzung hierfür ist, dass die Standardinstanz von SQL Server verwendet wird. Jede SQL Server-Datenbankinstanz verfügt über eigene Dienste. Sie können deren Namen im Knoten "Dienste" im Server-Manager überprüfen. Wenn Sie die zugehörige benannte Instanz gefunden haben, starten Sie den Dienst mithilfe von "net start mssqlserver" auf dem Remotecomputer, auf dem SQL Server ausgeführt wird.

Die interne Windows-Datenbank (Windows Internal Database, WID), die zum Speichern von AD FS-Konfigurationsdaten konfiguriert ist, wurde nicht gestartet.

Starten Sie die WID-Instanz, die die Datenbank "AdfsConfiguration" hostet.

Überprüfen Sie, ob der Dienst "sc query mssql$microsoft##ssee" auf dem Computer ausführt, der den Verbunddienst hostet, und stellen Sie sicher, dass der Status "Wird ausgeführt" lautet. Dies ist der Name der WID-Standardinstanz, die verwendet wird. Starten Sie den Dienst mithilfe von "net start mssql$microsoft##ssee" auf dem Verbundserver.

Die AD FS-Windows-Dienstidentität kann sich nicht bei SQL Server anmelden.

Stellen Sie sicher, dass SQL Server unter einem integrierten Konto ausgeführt wird, z. B. "NetworkService" oder "LocalSystem". Wenn SQL Server unter einem Domänenkonto ausgeführt wird, stellen Sie sicher, dass der Dienstprinzipalname (SPN) für dieses Konto richtig registriert wurde.

Verwenden Sie folgende Syntax mit dem Befehl "SetSpn.exe", um den SPN zu überprüfen:

SetSpn -L <Dienstkonto>

Die Ausgabe dieses Befehls muss „MSSQLSvc/<SQL-Servername>“ beinhalten.

Dieser Fehler kann möglicherweise auch durch Herstellen einer Verbindung mit dem SQL Server über SQL Management Studio und Überprüfen der folgenden Einstellungen behoben werden:

  • Überprüfen Sie, ob die AD FS-Windows-Dienstidentität unter dem Knoten „Sicherheit“ -> „Anmeldungen" in der SQL-Konsole vorhanden ist.

  • Überprüfen Sie, ob die AD FS-Windows-Dienstidentität unter „Datenbanken“ -> „AdfsConfiguration“ -> „Sicherheit“ -> „Benutzer“ vorhanden ist und ob sie das Schema „IdentityServerPolicy“ besitzt.

Die AD FS-Windows-Dienstidentität kann sich bei SQL Server anmelden, hat aber keinen Zugriff auf die Datenbank „AdfsConfiguration“.

Legen Sie die AD FS-Windows-Dienstidentität mithilfe von SQL Server Management Studio als Besitzer des Schemas "IdentityServerPolicy" fest. (Weitere Informationen finden Sie in der vorherigen Lösung.)

Timeout bei SQL Server.

Folgende Lösungen sind bei diesem Fehler möglich:

  • Ermitteln Sie die Abfragelast der SQL Server-Installation durch Überprüfen anderer Datenbanken, die auf dem Computer gehostet werden.

  • Erwägen Sie, „AdfsConfiguration“ auf einem dedizierten Server zu hosten.

  • Starten Sie SQL Server neu.

Für AD FS-Endpunkte wurden die ACL-Berechtigungen nicht richtig festgelegt.

Führen Sie den Assistenten für die Konfiguration eines AD FS-Verbundservers erneut aus, um die ACL-Berechtigungen für die angegebenen Endpunkte zu reparieren.

Lösungen

Siehe oben.

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
Fehler beim Starten des AD FS-Windows-Diensts aufgrund eines Fehlers beim Laden der Konfiguration
Die AD FS-Konfigurationsdatenbank konnte nicht richtig geladen werden. Der AD FS-Windows-Dienst konnte nicht gestartet werden.
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>