A hotfix is now available to avoid incorrect error reports. This hotfix allows the default behavior to be changed so that ISA Server returns a TCP FIN packet to the SMTP client instead of a RESET packet when the SMTP server closes the TCP connection with a TCP FIN packet. To change the default behavior after you install this hotfix, you have to run a script on the ISA Server computer.
To apply this hotfix, follow these steps:
- Download and then install the hotfix package that is mentioned in the following Microsoft Knowledge Base article:
959357 Description of the ISA Server 2006 hotfix package: October 29, 2008
Note: If you are running Forefront TMG 2010, copy the script from step 2 into a Notepad file and save it. Open command prompt with elevated privilege and then run the script (ie: cscript smtp.vbs). - Start Notepad, and then copy the following script into a Notepad file.
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"
Const SE_VPS_NAME = "GracefulPassthroughServerShutdown"
Const SE_VPS_VALUE = true
Sub 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 If
End Sub
Sub CheckError()
If Err.Number <> 0 Then
WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description
Err.Clear
End If
End Sub
SetValue
- Save the file as a Microsoft Visual Basic script file by using the .vbs file name extension.
- Double-click the .vbs file to run the script.
Note If you want to revert to the default behavior, change the following line of the script:
Const SE_VPS_VALUE = true
Change this line to the following:
Const SE_VPS_VALUE = false
Then, rerun the script on the ISA Server or Forefront TMG computer.