Sintomi
Un server che esegue Microsoft Forefront Threat Management Gateway (TMG) 2010 smetta di accettare nuove connessioni su un proxy web specifico o un listener web. Questo problema può verificarsi dopo alcune ore a diversi giorni di tempo di attività server.
Causa
Questo problema si verifica quando TMG non accetta nuove connessioni per il listener web. Questo riempie non appena la coda di backlog per il socket (AFD) driver di funzioni ausiliario. Dopo la coda di backlog è piena, il server viene avviato per reimpostare le nuove connessioni in ingresso. Se è possibile monitorare il server utilizzando Network Monitor in questo caso, è possibile notare un SYN, modello di ACK/RST per ogni nuovo tentativo di connessione.
Risoluzione
Per risolvere questo problema, installare cumulativo 5 per Forefront Threat Management Gateway (TMG) 2010 Service Pack 2.
Stato
Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".
Ulteriori informazioni
Dopo aver installato cumulativo 5, è necessario attivare la funzionalità di time out di inattività di accettare chiamate. A tale scopo, attenersi alla seguente procedura:
-
Copiare lo script seguente nel blocco note e quindi salvare il file come SetAcceptIdleTimeout.vbs:
'Define the constants needed.Const strVpsGUID = "{143F5698-103B-12D4-FF34-1F34767DEABC}"Const strVpsPropertyName = "AcceptIdleTimeout"Const Error_FileNotFound = &H80070002Set objArgs = wscript.Argumentsif objArgs.Count > 0 then uAcceptIdleTimeout = objArgs(0)end ifif 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 2end ifset objArray = CreateObject("FPC.Root").GetContainingArray()Set objVPSet = OpenVPSet(objArray, strVpsGUID)objVPSet.Value(strVpsPropertyName) = uAcceptIdleTimeoutobjArray.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 Ifend function -
Eseguire lo script su uno dei server TMG. Ad esempio per impostare il periodo di timeout su 5 minuti, eseguire da un prompt dei comandi amministrativo:
cscript.exe SetAcceptIdleTimeout.vbs 300
-
Per apportare questa modifica abbia effetto, riavviare il servizio firewall su tutti i membri di matrice.
Per annullare questa modifica, eseguire il comando seguente per impostare il timeout di inattività 0:
cscript.exe SetAcceptIdleTimeout.vbs 0
Riferimenti
Informazioni sulla terminologia utilizzata da Microsoft per descrivere gli aggiornamenti software.