Symptômes
Un serveur qui exécute Microsoft Forefront Threat Management Gateway (TMG) 2010 peut cesser d’accepter de nouvelles connexions sur un proxy web spécifique ou d’un port d’écoute web. Ce problème peut se produire après plusieurs heures à plusieurs jours de temps de fonctionnement du serveur.
Cause
Ce problème se produit lorsque TMG cesse d’accepter de nouvelles connexions sur le port d’écoute web. Cela remplit plus rapidement la file d’attente de la file d’attente du socket de pilote de fonction connexe. Une fois que la file d’attente de la file d’attente est pleine, le serveur démarre réinitialiser les nouvelles connexions entrantes. Si vous surveillez le serveur à l’aide du Moniteur réseau dans ce cas, vous pouvez remarquer un SYN, modèle d’accusé de réception/RST pour chaque nouvelle tentative de connexion.
Résolution
Pour résoudre ce problème, installez le correctif cumulatif 5 pour Forefront Threat Management Gateway (TMG) 2010 Service Pack 2.
État
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».
Plus d'informations
Après avoir installé le correctif cumulatif 5, vous devez activer la fonctionnalité à l’heure d’expiration inactive accepter les appels. Pour ce faire, procédez comme suit :
-
Copiez le script suivant dans le bloc-notes, puis enregistrez le fichier sous 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 -
Exécutez le script sur l’un des serveurs de TMG. Par exemple définir le délai d’expiration de 5 minutes, exécutez la procédure suivante à partir d’une invite de commande d’administration :
cscript.exe SetAcceptIdleTimeout.vbs 300
-
Pour effectuer cette modification soit prise en compte, redémarrez le service de pare-feu sur tous les membres du groupe.
Pour annuler cette modification, exécutez la commande suivante pour définir le délai d’inactivité sur 0 :
cscript.exe SetAcceptIdleTimeout.vbs 0
Références
Obtenir des informations sur la terminologie que Microsoft utilise pour décrire les mises à jour logicielles.