Symptômes
Prenons l’exemple du scénario suivant :
-
Dans Microsoft Internet Security et Acceleration (ISA) Server 2006 ou de Forefront TMG 2010, vous activez le filtrage SMTP.
-
Un client SMTP communique avec un serveur SMTP via ISA Server 2006 ou de Forefront TMG 2010.
-
Le client SMTP utilise l’un des verbes suivants dans sa conversation avec le serveur SMTP :
-
TLS
-
STARTTLS
-
X-AnonymousTLS
-
Dans ce scénario, ISA Server 2006 ou Forefront TMG 2010 réinitialise la connexion sur le client SMTP lorsque le serveur SMTP ferme sa connexion à ISA Server ou Forefront TMG 2010 avec un paquet TCP FIN. Ce comportement peut entraîner certains clients SMTP spécifiques applications signaler l’échec de la remise des messages même si les messages sont correctement envoyés. Dans la journalisation de ISA, vous consultez le code de résultat suivant pour cette connexion :
0x80074e24 FWX_E_CONNECTION_KILLED
Cause
Par conception, la connexion avec le client SMTP est réinitialisée lorsque le serveur SMTP ferme sa connexion à ISA Server ou Forefront TMG 2010. C’est parce que ISA Server ou Forefront TMG 2010 ne peuvent pas inspecter le trafic SMTP pour la commande SMTP QUIT lorsque le trafic est crypté. Toutefois, ce comportement peut entraîner des applications de client SMTP spécifiques pour signaler des erreurs.
Résolution
Un correctif est désormais disponible pour éviter des rapports d’erreur incorrecte. Ce correctif permet le comportement par défaut être modifié afin que le serveur ISA renvoie un paquet TCP FIN au client SMTP au lieu d’un paquet de réinitialisation lorsque le serveur SMTP ferme la connexion TCP avec un paquet TCP FIN. Pour modifier le comportement par défaut après l’installation de ce correctif, vous devez exécuter un script sur l’ordinateur ISA Server. Pour appliquer ce correctif, procédez comme suit :
-
Téléchargez et puis installer le package de correctif logiciel qui est mentionné dans l’article suivant de la Base de connaissances Microsoft :
Description de 959357 du package de correctifs ISA Server 2006 : 29 octobre 2008Remarque : Si vous exécutez Forefront TMG 2010, copiez le script de l’étape 2, dans un fichier Bloc-notes et enregistrez-le. Ouvrez l’invite de commandes avec privilèges élevés et puis exécuter le script (c'est-à-dire: cscript vient).
-
Démarrez le bloc-notes, puis copiez le script suivant dans un fichier Bloc-notes.
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "GracefulPassthroughServerShutdown"Const SE_VPS_VALUE = trueSub SetValue() ' Create the root obect. Dim root ' The FPCLib.FPC root object Set root = CreateObject("FPC.Root") 'Declare the other objects needed. Dim array ' An FPCArray object Dim VendorSets ' An FPCVendorParametersSets collection Dim VendorSet ' An FPCVendorParametersSet object ' Get references to the array object ' and the network rules collection. Set array = root.GetContainingArray Set VendorSets = array.VendorParametersSets On Error Resume Next Set VendorSet = VendorSets.Item( SE_VPS_GUID ) If Err.Number <> 0 Then Err.Clear ' Add the item Set VendorSet = VendorSets.Add( SE_VPS_GUID ) CheckError WScript.Echo "New VendorSet added... " & VendorSet.Name Else WScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME) End If if VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE Then Err.Clear VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUE If Err.Number <> 0 Then CheckError Else VendorSets.Save false, true CheckError If Err.Number = 0 Then WScript.Echo "Done with " & SE_VPS_NAME & ", saved!" End If End If Else WScript.Echo "Done with " & SE_VPS_NAME & ", no change!" End IfEnd SubSub CheckError() If Err.Number <> 0 Then WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description Err.Clear End IfEnd SubSetValue
-
Enregistrez le fichier sous la forme d’un fichier de script Microsoft Visual Basic à l’aide de l’extension de nom de fichier .vbs.
-
Double-cliquez sur le fichier .vbs pour exécuter le script.
Remarque Si vous souhaitez rétablir le comportement par défaut, modifiez la ligne suivante du script :
Const SE_VPS_VALUE = true
Remplacez cette ligne par la suivante :
Const SE_VPS_VALUE = false
Ensuite, réexécutez le script sur l’ordinateur ISA Server ou Forefront TMG.
Statut
Microsoft a confirmé l’existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.
Références
Pour plus d’informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft