Symptom
En server som kör Microsoft Forefront Threat Management Gateway (TMG) 2010 slutar acceptera nya anslutningar på en viss Webbproxy eller webblyssnare. Detta problem kan uppstå när flera timmar till flera dagar av upptiden.
Orsak
Det här problemet uppstår när TMG slutar acceptera nya anslutningar på web listener. Detta fyller snart eftersläpning kön för extra funktion drivrutin (AFD) socket. När eftersläpning kön är full, startar servern att återställa nya inkommande anslutningar. Om du övervakar servern med hjälp av Network Monitor i den här situationen kan det hända att en SYN ACK/RST mönster för varje ny anslutningsförsöket.
Lösning
Lös problemet genom att installera samlad 5 för Forefront Threat Management Gateway (TMG) 2010 Service Pack 2.
Status
Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".
Mer Information
När du har installerat Samlad 5 måste du aktivera funktionen tid ut inaktiv acceptera samtal. Gör så här:
-
Kopiera följande skript i anteckningar och sedan spara filen som SetAcceptIdleTimeout.vbs:
'Define the constants needed.Const strVpsGUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"
Const strVpsPropertyName = "AcceptIdleTimeout"
Const Error_FileNotFound = &H80070002
Set objArgs = wscript.Arguments
if objArgs.Count > 0 then
uAcceptIdleTimeout = objArgs(0)
end if
if objArgs.Count <> 1 then
wscript.echo "Usage: SetAcceptIdleTimeout.vbs <timeout>"
wscript.echo
wscript.echo "Set async accept timeout to <timeout> value (in sec)"
wscript.echo "To disable async accept timeout set it to 0"
wscript.Quit 2
end if
set objArray = CreateObject("FPC.Root").GetContainingArray()
Set objVPSet = OpenVPSet(objArray, strVpsGUID)
objVPSet.Value(strVpsPropertyName) = uAcceptIdleTimeout
objArray.Save()
objArray.RestartServices(1)
function OpenVPSet(objParent, strVpsGUID)
Set objVPSets = objParent.VendorParametersSets
On Error Resume Next
Set OpenVPSet = objVPSets.Item(strVpsGUID)
' Save the Err properties in case it needs to be re-raised
errNumber = Err.Number
errSource = Err.Source
errDescription = Err.Description
errHelpFile = Err.HelpFile
errHelpContext = Err.HelpContext
On Error GoTo 0
if errNumber = Error_FileNotFound Then
Set OpenVPSet = objVPSets.Add(strVpsGUID)
Elseif errNumber < 0 Then
' An error other than "file not found" occurred -- re-raise the error,
' this time not under "On Error Resume Next"
Err.Raise errNumber, errSource, errDescription, errHelpFile, errHelpContext
End If
end function
-
Kör skriptet på en TMG-Server. Kör följande från en kommandotolk med administrativa t ex att ställa in timeout-perioden till 5 minuter:
cscript.exe SetAcceptIdleTimeout.vbs 300
-
Starta om brandväggstjänsten på alla matrismedlemmar om du vill göra den här ändringen börjar gälla.
Kör följande kommando för att ange inaktiv timeout-värdet till 0 om du vill ångra ändringen:
cscript.exe SetAcceptIdleTimeout.vbs 0
Referenser
Lär dig mer om den terminologi som Microsoft använder för att beskriva programuppdateringar.