Službu AD FS systému Windows se nepodařilo spustit kvůli chybě při načítání konfigurace

Microsoft.ActiveDirectoryFederationServices2012R2.FederationServerServiceConfigurationInitializationErrorMonitor (UnitMonitor)

Knowledge Base article:

Souhrn

Službu AD FS systému Windows se nepodařilo spustit , protože konfigurační databázi se nepodařilo správně načíst.

Pokud je služba AD FS systému Windows úspěšně spuštěna, monitor přejde do zeleného stavu a původní kritická výstraha bude automaticky vyřešena.

Příčiny

Níže jsou vedeny možné příčiny této události:

Příčina

Řešení

Vzdálený počítač, který hostuje databázi SQL serveru, je nedosažitelný.

Pomocí příkazu Ping.exe ověřte, zda je vzdálený počítač dosažitelný z federačního serveru.

Počítač, na kterém běží server SQL, a který je nakonfigurovaný pro ukládání konfiguračních dat služby AD FS, není spuštěný.

Spusťte instanci SQL serveru, který hostuje databázi AdfsConfiguration.

Ověřte, je služba spuštěna, provedením příkazu "sc query mssqlserver" na počítači, který hostuje server SQL, a ujistěte se, že parametr Stav má hodnotu RUNNING (spuštěno). To předpokládá. že se používá výchozí instance SQL serveru. Každá instance databáze SQL serveru má vlastní služby, jejichž názvy lze zjistit nahlédnutím do uzlu Služby ve Správci serveru. Když naleznete odpovídající pojmenovanou instanci, spusťte službu pomocí příkazu "net start mssqlserver" ve vzdáleném počítači, na kterém je spuštěn server SQL.

Interní databáze systému Windows (WID), která je nakonfigurovaná pro ukládání konfiguračních dat služby AD FS, není spuštěná.

Spusťte instanci databáze WID, která hostuje databázi AdfsConfiguration.

Ověřte, je služba spuštěna, provedením příkazu "sc query mssql$microsoft##ssee" na počítači, který hostuje službu Federation Service, a ujistěte se, že parametr Stav má hodnotu RUNNING (spuštěno). Pamatujte, že toto je název výchozí instance databáze WID, která se používá. Spusťte službu pomocí příkazu net start mssql$microsoft##ssee na počítači federačního serveru.

Identita služby AD FS systému Windows se nemůže přihlásit k SQL serveru.

Ujistěte se, že server SQL je spuštěn pod vestavěným účtem, např. NetworkService nebo LocalSystem. Pokud je server SQL spuštěn pod účtem domény, ověřte, zda byl správně zaregistrován hlavní název služby (SPN) pro daný účet.

K ověření názvu SPN, použijte příkaz SetSpn.exe s následující syntaxí:

SetSpn -L <serviceaccount>

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

Dalším možným řešením této chyby je připojení k SQL serveru pomocí nástroje SQL Management Studio a ověření následujících nastavení:

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

Identita služby AD FS systému Windows se může přihlásit k SQL serveru, ale nemá přístup k databázi AdfsConfiguration.

Pomocí nástroje SQL Server Management Studio, nastavte identitu služby AD FS systému Windows jako vlastníka schématu IdentityServerPolicy (viz předchozí řešení).

Limit SQL serveru brzy vyprší.

Níže jsou uvedena možná řešení této chyby:

  • Zjistěte zatížení instalace SQL serveru dotazy prohlédnutím dalších databází, které jsou na počítači hostovány.

  • Zvažte hostování databáze AdfsConfiguration na vyhrazeném serveru.

  • Restartujte server SQL.

Koncové body služby AD FS nemají správně nastavená oprávnění seznamu řízení přístupu.

Znovu spusťte Průvodce konfigurací federačního serveru služby AD FS a opravte oprávnění seznamu řízení přístupu pro specifikované koncové body.

Řešení

Viz výše.

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
Službu AD FS systému Windows se nepodařilo spustit kvůli chybě při načítání konfigurace
Konfigurační databázi služby AD FS se nepodařilo správně načíst. Službu AD FS systému Windows se nepodařilo inicializovat.
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>