페더레이션 서버 프록시 연결 오류

Microsoft.ActiveDirectoryFederationServices20.FederationServerProxyToServerCommunicationMonitor (UnitMonitor)

Knowledge Base article:

요약

페더레이션 서버 프록시에서 페더레이션 서버에 연결할 수 없습니다. 이 모니터는 페더레이션 서버 프록시에서 설정된 간격으로 실행되어 https://<호스트 이름>/FederationMetadata/2007-06/FederationMetadata.xml에서 페더레이션 서버의 페더레이션 메타데이터 업데이트를 확인합니다.

페더레이션 서버 프록시가 페더레이션 서버에서 페더레이션 메타데이터를 가져올 수 있으면 모니터가 녹색 상태로 전환되고 원래의 중요한 알림이 자동으로 해결됩니다.

원인

페더레이션 서버 컴퓨터에서 AD FS 2.0 Windows 서비스가 중지되었음을 의미할 수 있습니다. 자세한 내용은 알림 컨텍스트 탭을 확인하십시오.

해결 방법

AD FS 2.0 Windows 서비스가 원격 페더레이션 서버 컴퓨터에서 시작되었는지, 그리고 원격 페더레이션 서버가 연결 가능한 상태인지 확인합니다. 자세한 내용은 AD FS 2.0 Troubleshooting Guide(AD FS 2.0 문제 해결 가이드)의 "Verify that AD FS is installed and running(AD FS가 설치되고 실행 중인지 확인)" 섹션 및 "Verify network connectivity(네트워크 연결 확인)" 섹션을 참조하십시오.

Element properties:

TargetMicrosoft.ActiveDirectoryFederationServices20.FederationServerProxy
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.ActiveDirectoryFederationServices20.TwoStateScriptMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
페더레이션 서버 프록시 연결 오류
페더레이션 서버 프록시에서 페더레이션 서버에 연결할 수 없습니다. 자세한 내용은 알림 컨텍스트 탭을 확인하십시오.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.ActiveDirectoryFederationServices20.FederationServerProxyToServerCommunicationMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.ActiveDirectoryFederationServices20.FederationServerProxy" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Microsoft.ActiveDirectoryFederationServices20.TwoStateScriptMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.ActiveDirectoryFederationServices20.FederationServerProxyToServerCommunicationMonitor_AlertMessageResourceID">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<PowerShellPath>%windir%\system32\windowspowershell\v1.0\powershell.exe</PowerShellPath>
<ScriptName>FederationServerProxyToServerCommunicationCheck.ps1</ScriptName>
<ScriptBody><Script> $proxyWMIObject = (Get-WmiObject -Namespace root\ADFS -Class ProxyService)

$scomapi = new-object -comObject "MOM.ScriptAPI"
$scomapi.LogScriptEvent("ActiveDirectoryFederationServices", 300, 4, "Proxy to server connectivity PowerShell monitoring script")
$fullHostName = "https://" + $proxyWMIObject.HostName + ":" + $proxyWMIObject.HostHttpsPort + "/FederationMetadata/2007-06/FederationMetadata.xml"
$forwardProxyAddress = $proxyWMIObject.ForwardHttpProxyAddress
$script:serverReachable = $true
$script:exceptionMessage = ""

[System.Net.WebResponse] $webResponse = $null;
#try
&amp;{
[System.Net.WebRequest] $webRequest = [System.Net.WebRequest]::Create( $fullHostName )
if( [String]::IsNullOrEmpty( $forwardProxyAddress ) -eq $false )
{
$webRequest.Proxy = new [System.Net.WebProxy] $forwardProxyAddress, $true
}
$webResponse = $webRequest.GetResponse()
}
trap [System.Exception]
{
$script:serverReachable = $false
$script:exceptionMessage = $_.Exception.Message
continue
}

if ( $null -ne $webResponse )
{
$webResponse.Close()
}

$scompb = $scomapi.CreatePropertyBag()
$scompb.AddValue("ServerReachable", $script:serverReachable )
$scompb.AddValue("ErrorMessage", $script:exceptionMessage )
$scomapi.AddItem($scompb)
$scomapi.ReturnItems() </Script></ScriptBody>
<IntervalSeconds>300</IntervalSeconds>
<TimeoutSeconds>180</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='ServerReachable']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">false</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='ServerReachable']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">true</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
</Configuration>
</UnitMonitor>