项目数据库连接打开错误

Microsoft.ActiveDirectoryFederationServices2012R2.ArtifactServiceArtifactStorageConnectionOpenErrorMonitor (UnitMonitor)

Knowledge Base article:

摘要

此监视器指示联合身份验证服务未能连接到 SAML 项目存储。如果在 15 分钟之内没有再次发生同样的问题,此监视器的运行状况状态将变回绿色状态。此监视器所生成的警报必须手动解除。

原因

以下是此事件的可能原因:

此外,此事件可能包含有助于进行 SQL 故障排除的其他详细信息:例如,未针对当前 AD FS 服务标识建立权限或访问。

解决方法

确保项目数据库已正确配置。如有必要,请将 Set-ADFSProperties cmdlet 与 ArtifactDbConnection 参数(包含在适用于 AD FS 的 Windows PowerShell cmdlets 内)结合使用,以便对连接字符串进行修改。对项目数据库的连接进行故障排除。

有关特定于 SQL 的故障排除权限的信息,请参阅 AD FS 故障排除指南的“对 AD FS 进行故障排除之前需检查的事项”部分中,有关验证 AD FS 服务用户帐户对配置存储访问权限的步骤。 您可以重复使用该处所提供的相同步骤来验证项目存储 (AdfsArtifactStore) 而非配置存储 (AdfsConfiguration) 的权限。

Element properties:

TargetMicrosoft.ActiveDirectoryFederationServices2012R2.ArtifactService
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.SingleEventLogTimer2StateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
项目数据库连接打开错误
无法连接到项目数据库。检查“警报上下文”选项卡以获取事件详细信息。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.ActiveDirectoryFederationServices2012R2.ArtifactServiceArtifactStorageConnectionOpenErrorMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.ActiveDirectoryFederationServices2012R2.ArtifactService" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.SingleEventLogTimer2StateMonitorType" ConfirmDelivery="true">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.ActiveDirectoryFederationServices2012R2.ArtifactServiceArtifactStorageConnectionOpenErrorMonitor_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="EventRaised" MonitorTypeStateID="EventRaised" HealthState="Warning"/>
<OperationalState ID="TimerEventRaised" MonitorTypeStateID="TimerEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>$Target/Host/Host/Property[Type="Microsoft.ActiveDirectoryFederationServices2012R2.FederationServer"]/ADFSEventLog$</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">286</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>MatchesMOM2005RegularExpression</Operator>
<Pattern>(^AD FS$)</Pattern>
</RegExExpression>
</Expression>
</And>
</Expression>
<TimerWaitInSeconds>900</TimerWaitInSeconds>
</Configuration>
</UnitMonitor>