Não Foi Possível Iniciar o Serviço AD FS do Windows Devido a Um Erro de Carregamento da Configuração

Microsoft.ActiveDirectoryFederationServices2012R2.FederationServerServiceConfigurationInitializationErrorMonitor (UnitMonitor)

Knowledge Base article:

Resumo

Não foi possível iniciar o serviço AD FS do Windows porque não foi possível carregar corretamente a base de dados de configuração do AD FS.

Se o serviço AD FS do Windows tiver sido iniciado com êxito, o monitor passará para um estado Verde e o alerta crítico original será automaticamente resolvido.

Causas

Eis algumas causas possíveis deste evento:

Causa

Resolução

Não foi possível contactar o computador remoto que aloja a base de dados do SQL Server.

Utilize o comando Ping.exe para verificar se é possível contactar o computador remoto a partir do servidor de federação.

O computador com o SQL Server, configurado para armazenamento dos dados de configuração do AD FS, não foi iniciado.

Inicie a instância do SQL Server que aloja a base de dados AdfsConfiguration.

Verifique se o serviço está a executar "sc query mssqlserver" no computador que aloja o SQL Server e certifique-se de que ESTADO = EM EXECUÇÃO. Assume-se que está a ser utilizada a instância predefinida do SQL Server. Cada instância da base de dados do SQL Server possui os seus próprios serviços, cujos nomes podem ser verificados observando o nó Serviços do Gestor de Servidor. Quando localizar a instância com o nome correspondente, inicie o serviço utilizando o comando "net start mssqlserver" no computador remoto com o SQL Server.

A Base de Dados Interna do Windows (WID) configurada para armazenamento dos dados de configuração do AD FS não foi iniciada.

Inicie a instância de WID que aloja a base de dados AdfsConfiguration.

Verifique se o serviço está a executar "sc query mssql$microsoft##ssee" no computador que aloja o Serviço de Federação e certifique-se de que ESTADO = EM EXECUÇÃO. Note que este é o nome da instância predefinida do WID em utilização. Inicie o serviço utilizando o comando "net start mssql$microsoft##ssee" no computador com o servidor de federação.

A identidade de serviço AD FS do Windows não consegue iniciar sessão no SQL Server.

Certifique-se de que o SQL Server se encontra em execução sob uma conta incorporada, tal como NetworkService ou LocalSystem. Se o SQL Server se encontrar em execução sob uma conta de domínio, verifique se o nome principal do serviço (SPN) dessa conta foi registado corretamente.

Para verificar o SPN, utilize a sintaxe seguinte com o comando SetSpn.exe:

SetSpn -L <serviceaccount>

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

Outra resolução possível deste erro inclui a ligação ao SQL Server utilizando o SQL Management Studio e verificando as seguintes definições:

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

A identidade de serviço AD FS do Windows consegue iniciar sessão no SQL Server, mas não possui acesso à base de dados AdfsConfiguration.

Utilizando o SQL Server Management Studio, torne a identidade de serviço AD FS do Windows proprietária do esquema IdentityServerPolicy (consulte a resolução anterior).

O SQL Server está a exceder o tempo limite.

Eis algumas resoluções possíveis deste erro:

  • Determine a carga de consulta da instalação do SQL Server observando outras bases de dados alojadas no computador.

  • Considere alojar AdfsConfiguration num servidor dedicado.

  • Reinicie o SQL Server.

Os pontos finais do AD FS não possuem as permissões ACL corretamente definidas.

Execute novamente o Assistente de Configuração do Servidor de Federação AD FS para reparar as permissões ACL dos pontos finais especificados.

Resoluções

Consulte acima.

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
Não Foi Possível Iniciar o Serviço AD FS do Windows Devido a Um Erro de Carregamento da Configuração
Não foi possível carregar corretamente a base de dados de configuração do AD FS. Não foi possível iniciar o Serviço AD FS do Windows.
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>