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.