Síntomas
Un servidor que está ejecutando Microsoft Forefront Threat Management Gateway (TMG) 2010 puede dejar de aceptar nuevas conexiones en un servidor proxy de web específica o la escucha de web. Este problema puede producirse después de varias horas a varios días de tiempo de actividad del servidor.
Causa
Este problema se produce cuando TMG deja de aceptar nuevas conexiones en la escucha de web. Esto llenará pronto la cola de registro para el socket de driver (AFD) de la función auxiliar. Después de la cola de registro está lleno, el servidor empieza a restablecer nuevas conexiones entrantes. Si supervisa el servidor mediante el Monitor de red en esta situación, puede observar un SYN, modelo RST/ACK para cada nuevo intento de conexión.
Solución
Para resolver este problema, instale el paquete acumulativo de actualizaciones 5 para Forefront Threat Management Gateway (TMG) 2010 Service Pack 2.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".
Más información
Después de instalar el paquete acumulativo de actualizaciones 5, debe habilitar la funcionalidad de tiempo de espera inactivo Aceptar llamadas. Para ello, siga estos pasos:
-
Copie la siguiente secuencia de comandos en el Bloc de notas y, a continuación, guarde el archivo como 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
-
Ejecute la secuencia de comandos en uno de los servidores TMG. Por ejemplo establecer el tiempo de espera en 5 minutos, ejecute lo siguiente desde un símbolo del sistema administrativo:
cscript.exe SetAcceptIdleTimeout.vbs 300
-
Para que este cambio surta efecto, reinicie el servicio de firewall en todos los miembros de la matriz.
Para deshacer este cambio, ejecute el siguiente comando para establecer el tiempo de espera en 0:
cscript.exe SetAcceptIdleTimeout.vbs 0
Referencias
Obtenga información acerca de la terminología que utiliza Microsoft para describir las actualizaciones de software.