Symptomen
Een server waarop Microsoft Forefront Threat Management Gateway (TMG) 2010 wordt uitgevoerd, accepteert mogelijk geen nieuwe verbindingen meer op een specifieke webproxy of weblistener. Dit probleem kan optreden na enkele uren tot meerdere dagen serverbeschikbaarheid.
Oorzaak
Dit probleem treedt op wanneer TMG geen nieuwe verbindingen meer accepteert op de weblistener. Hierdoor wordt de wachtrij voor de AFD-socket (Ancillary Function Driver) al snel gevuld. Wanneer de wachtrij voor de achterstand vol is, wordt begonnen met het opnieuw instellen van nieuwe binnenkomende verbindingen. Als u in deze situatie de server bewaakt met Network Monitor, ziet u mogelijk een SYN-, ACK/RST-patroon bij elke nieuwe verbindingspoging.
Oplossing
Als u dit probleem wilt oplossen, installeert u updatepakket 5 voor Forefront Threat Management Gateway (TMG) 2010 Service Pack 2.
Status
Microsoft heeft bevestigd dat dit een probleem is bij de Microsoft-producten die worden vermeld in het gedeelte 'Van toepassing op'.
Meer informatie
Nadat u updatepakket 5 hebt geïnstalleerd, moet u de functionaliteit voor een time-out voor inactief accepteren van gesprekken inschakelen. Ga hiervoor als volgt te werk:
Kopieer het volgende script naar Kladblok en sla het bestand vervolgens als SetAcceptIdleTimeout.vbs op:
'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 functionVoer het script uit op een van de TMG-servers. Als u de time-outperiode bijvoorbeeld wilt instellen op 5 minuten, voert u de volgende opdracht uit vanaf een administratieve opdrachtprompt:
cscript.exe SetAcceptIdleTimeout.vbs 300Als u deze wijziging wilt doorvoeren, start u de firewallservice opnieuw op alle matrixleden.
U maakt deze wijziging ongedaan door de volgende opdracht uit te voeren om de time-out voor inactiviteit in te stellen op 0:
cscript.exe SetAcceptIdleTimeout.vbs 0
Meer informatie
Meer informatie over de terminologie die Microsoft gebruikt om software-updates te beschrijven.