你目前正处于脱机状态,正在等待 Internet 重新连接

当 ISA Server 2006 连接时重置为 SMTP 客户端 SMTP 服务器关闭它连接到 ISA 服务器

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

959312
症状
请考虑以下情形:
  • 在 Microsoft Internet 安全性和加速 (ISA) Server 2006 启用了 SMTP 筛选。
  • SMTP 客户端与 ISA Server 2006 通过 SMTP 服务器进行通信。
  • SMTP 客户端将使用下列动作之一与 SMTP 服务器的对话中:
    • TLS
    • STARTTLS
    • X AnonymousTLS
在这种情况下 ISA Server 2006 连接当将重置为 SMTP 客户端关闭它的连接到 ISA 服务器使用 TCP FIN 数据包时 SMTP 服务器。此行为会导致某些特定的 SMTP 客户端报告邮件传递失败即使正确发送消息的应用程序。

在 ISA 记录中,您将看到下面的结果代码,为此连接:
0x80074e24 FWX_E_CONNECTION_KILLED
原因
通过设计,当 SMTP 服务器关闭它连接到 ISA 服务器与 SMTP 客户端的连接被重置。这是因为该通信进行加密时,ISA 服务器无法检查 SMTP 通信进行 SMTP QUIT 命令。但是,此行为可能导致特定的 SMTP 客户端应用程序报告错误。
解决方案
现在可以避免不正确的错误报告修补程序。此修补程序,默认行为,进行更改,因此,ISA 服务器 TCP FIN 数据包时返回给该 SMTP 客户端,而不是一个 RESET 数据包 SMTP 服务器关闭 TCP 连接使用 TCP FIN 数据包。要安装此修补程序后,请更改默认行为,您必须在 ISA 服务器计算机上运行脚本。

若要将此修补程序,请按照下列步骤操作:
  1. 下载,然后安装在下面的 Microsoft 知识库文章中的提到此修补程序包:
    959357ISA Server 2006 修补程序包的说明: 2008 年 10 月 29
  2. 启动记事本,然后将下面的脚本复制到一个记事本文件
    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
  3. 通过使用.vbs 文件扩展名将文件另存为 Microsoft Visual Basic 脚本文件。
  4. 双击该.vbs 文件,若要运行该脚本。
注意如果要恢复到默认的行为更改脚本的以下行:
Const SE_VPS_VALUE = true

更改以下这行:
Const SE_VPS_VALUE = false

然后,重新运行该脚本在 ISA 服务器计算机上。
状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。
参考
有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684用于描述 Microsoft 软件更新的标准术语的说明

警告: 本文已自动翻译

属性

文章 ID:959312 - 上次审阅时间:06/11/2009 15:41:07 - 修订版本: 2.0

  • Microsoft Internet Security and Acceleration Server 2006 Service Pack 1
  • kbmt kbexpertiseinter kbfix kbsurveynew kbqfe KB959312 KbMtzh
反馈