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.