Firewall Rule for Inbound Content Download Requests

Microsoft.Windows.BranchCache.HostedCacheClient.Monitor.Firewall.Download (UnitMonitor)

Monitors the Windows Firewall setting for inbound download requests on TCP port 80.

Knowledge Base article:

Summary

This monitor verifies the Windows Firewall setting for inbound download requests on TCP port 80, which is used to serve content to requesting computers. This check ensures that other computers on the network, including the hosted cache server, can retrieve content from this computer.

Causes

This monitor is triggered when the corresponding Windows Firewall rule is not enabled, therefore blocking the inbound traffic on the specific protocol port. System administrators can control (enable or disable) specific firewall rules on a computer. This monitor is triggered when the corresponding firewall rule is not enabled to allow the inbound connections to the BranchCache process on this computer.

Resolutions

If you deployed BranchCache by using Group Policy settings, correct any issues by editing the BranchCache Group Policy settings instead of manually reconfiguring individual computers, because Group Policy settings override settings that are manually configured. If you did not deploy BranchCache by using Group Policy, you can correct issues manually on individual computers..

Click on the following task to verify the current configurations:

Display BranchCache status

To create a Windows Firewall rule that allows inbound traffic on TCP port 80, please run the following command from an elevated command prompt:

"netsh branchcache set service [[location]=<Hosted Cache Name>]"

Or simply click on the following task: Fix hosted cache client configurations

If a third-party (non-Windows) firewall program is used, modify the firewall settings to allow this inbound traffic.

Element properties:

TargetMicrosoft.Windows.BranchCache.HostedCacheClientNode
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.SingleEventLogManualReset2StateMonitorType
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.Windows.BranchCache.HostedCacheClient.Monitor.Firewall.Download" Accessibility="Public" Enabled="onEssentialMonitoring" Target="Microsoft.Windows.BranchCache.HostedCacheClientNode" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.SingleEventLogManualReset2StateMonitorType" ConfirmDelivery="true">
<Category>ConfigurationHealth</Category>
<OperationalStates>
<OperationalState ID="EventRaised" MonitorTypeStateID="EventRaised" HealthState="Error"/>
<OperationalState ID="ManualResetEventRaised" MonitorTypeStateID="ManualResetEventRaised" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ComputerName>$Target/Property[Type="Microsoft.Windows.BranchCache.ClientSideServiceBase"]/NodeName$</ComputerName>
<LogName>Microsoft-Windows-BranchCache/Operational</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">8</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Microsoft-Windows-BranchCache</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</Configuration>
</UnitMonitor>