FIX: nieuwe verbindingen worden niet geaccepteerd op een specifieke webproxy of weblistener in Threat Management Gateway 2010

Van toepassing op
Forefront Threat Management Gateway 2010 Enterprise Forefront Threat Management Gateway 2010 Standard

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:

  1. 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 function
    
  2. Voer 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 300
    
  3. Als 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.