AD FS Windows-tjänsten kunde inte starta på grund av att AD FS-konfigurationsdatabasen inte är korrekt inläst.
Vid lyckad uppstart av AD FS Windows-tjänsten ändras bildskärmen till grön status och den ursprungliga kritiska varningen löses automatiskt.
Följande är troliga orsaker till händelsen:
Orsak | Lösning |
---|---|
Fjärrdatorn som är värd för SQL Server-databasen går inte att nå. | Verifiera att fjärrdatorn kan nås från federationsservern genom att använda Ping.exe. |
Datorn som kör SQL-servern och som är konfigurerad för att kunna spara AD FS-konfigurationsdata är inte startad. | Starta den SQL-serverinstans som är värd för AdfsConfiguration-databasen. Verifiera att värddatorn för SQL-servern kör tjänsten "sc query mssqlserver" samt att den har status STATE = RUNNING. Detta förutsätter att SQL Server-databasinstansen används. Alla SQL Server-databasinstanser har sina egna tjänster vars namn du hittar i tjänstnoden i serverhanteraren. Starta tjänsten på fjärrdatorn där SQL-servern genom att använda "net start mssqlserver" när du lokaliserat motsvarande instansnamn. |
Den interna Windows-databasen (WID) som är konfigurerad för att kunna spara AD FS-konfigurationsdata är inte startad. | Starta WID-instansen som är värd för AdfsConfiguration-databasen. Verifiera att värddatorn för federationstjänsten kör sc query mssql$microsoft##ssee samt att den har status STATE = RUNNING. Observera att detta är namnet på den standardinstans för WID som används. Du startar tjänsten genom att använda mssql$microsoft##ssee på federationens serverdator. |
AD FS Windows-tjänstsidentiteten lyckas inte logga in på SQL-servern. | Kontrollera att SQL-servern körs i ett inbyggt konto, exempelvis NetworkService eller LocalSystem. Om SQL-servern körs i ett domänkontot behöver du verifiera att tjänstens huvudnamn (SPN) för det kontot är korrekt registrerat. Du verifiera SPN genom att använda följande syntax med kommandot SetSpn.exe: SetSpn -L <serviceaccount> The output of this command should have MSSQLSvc/<SQL server name>. Du kan även lösa det problem genom att ansluta till SQL-servern via SQL Management Studio och verifiera följande inställningar:
|
AD FS Windows-tjänstsidentiteten loggas in på SQL-servern men kommer inte åt AdfsConfiguration-databasen. | Gör AD FS Windows-tjänstsidentiteten till ägare av IdentityServerPolicy-schemat (se föregående lösning) med hjälp av SQL Server Management Studio. |
Tidsgränsen för SQL-server löper ut. | Möjliga lösningar på problemet är följande:
|
ACL-tillstånden för AD FS-slutpunkterna är felaktigt inställda. | Reparera ACL-tillståndet för angiven slutpunkt genom att köra guiden Konfigurera AD FS-federationsserver på nytt. |
Se ovan.
Target | Microsoft.ActiveDirectoryFederationServices2012R2.FederationServer | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.2SingleEventLog2StateMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>