• 当您通过有压缩筛选器已启用 Web 筛选器的 ISA Server 2004 中访问 Web 站点时收到错误消息

    日期:2009.04.14 | 分类:微软产品 | 标签:

    症状请考虑以下情形: 您访问 Microsoft Internet Security and Acceleration (ISA) Server 2004 中发布网…请考虑以下情形:

    • 您访问 Microsoft Internet Security and Acceleration (ISA) Server 2004 中发布网站。 或者,您在通过将作为 Web 代理的 ISA Server 2004 访问网站。
    • 在 ISA Server 2004 中启用压缩筛选器 Web 筛选器。
    • 网站发送到客户端 HTTP / 0.9 响应。


    在这的种情况下您收到以下错误信息之一。
    错误消息 1

    HTTP / 1.1 502 代理错误 (指定的网络名称操作不再可用。

    错误信息 2

    错误代码 64: 主机不可用
    背景: 网关或代理服务器丢失连接到 Web 服务器。

    原因
    HTTP / 0.9 响应具有只正文,但没有头。 该 Web 站点关闭以指示响应结束连接。
    但是,压缩筛选器在 ISA Server 中的 Web 筛选器需要 HTTP / 1.0 或 HTTP / 1.1 响应。 压缩筛选器 Web 筛选器不能识别 HTTP / 0.9 响应。 因此,压缩筛选器 Web 筛选器假定连接丢失或重置 Web 站点发送所有 HTTP 响应头之前。

    解决方案
    要解决此问题,请按下列步骤操作:

    1. 应用此修复程序包下面的 Microsoft 知识库文章中所述:945043 (http://support.microsoft.com/kb/945043/ ) 日版 ISA Server 2004 的修补程序包: 2007 年 11 月 12
    2. 启动记事本。
    3. 复制下面的代码,然后将其粘贴记事本
      Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"
      Const SE_VPS_NAME = "EnableHotfix944114"
      Const SE_VPS_VALUE = true
      
      Sub SetValue()
      
          ' Create the root object.
          Dim root  ' The FPCLib.FPC root object
          Set root = CreateObject("FPC.Root")
      
          'Declare the other required objects.
          Dim array       ' An FPCArray object
          Dim VendorSets  ' An FPCVendorParametersSets collection
          Dim VendorSet   ' An FPCVendorParametersSet object
      
          ' Get references to the array object
          ' and to 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

       

    4. 通过使用.vbs 扩展名中,将该文件保存为 Microsoft Visual Basic 脚本文件。 是例如使用下列名称保存该文件:EnableHotfix944114.vbs
    5. 在命令提示符下更改为在步骤 4 中, 保存该文件的位置,然后运行下面的命令:cscript EnableHotfix944114.vbs

    请注意 若要还原默认设置,编辑脚本通过更改”const SE_VPS_VALUE = 如果为 True”,”const SE_VPS_VALUE = false” 将该的脚本保存,然后再运行。

    替代方法
    要解决此问题,禁用压缩筛选器在 ISA Server 中的 Web 筛选器。

    状态
    Microsoft 已确认这是”适用于”一节中列出的在 Microsoft 产品中存在的问题。


    这篇文章中的信息适用于:

    • Microsoft Internet Security and Acceleration Server 2004 Enterprise Edition
    • Microsoft Internet Security and Acceleration Server 2004 Standard Edition

    关键字: 

    kbmt kbqfe kbexpertiseinter KB944114 KbMtzh