症状
在运行 Microsoft Internet 安全性和加速 (ISA) Server 2004 Service Pack 2 或 Windows Essential Business Server 2008 的服务器上,禁用以下两个 Web 筛选器:
-
压缩筛选器
-
缓存压缩内容筛选器
执行此操作后,使用转发代理时,ISA Server 2004 或 Windows Essential Business Server 2008 会阻止包含 Accept-Encoding HTTP 标头的请求。
ISA Server 2004 Service Pack 2 或 Windows Essential Business Server 2008 中引入了这些 Web 筛选器。 由于涉及某些 Web 服务器的程序兼容性问题,可能会禁用这些 Web 筛选器。解决方法
Service Pack 信息
若要解决此问题,请安装 ISA Server 2004 Service Pack 3 (SP3) ,然后运行本部分中提到的 Microsoft Visual Basic 脚本。
安装 Service Pack 后,运行以下脚本以启用新的配置参数。 如果压缩筛选器在转发代理方案中被禁用,则此新参数允许 ISA 服务器转发包含Accept-Encoding HTTP 标头的请求。 为此,请按照下列步骤操作。 Microsoft 提供编程示例仅供说明,不提供明示或默示担保。 这包括但不限于适销性或针对特定用途的适用性的默示保证。 本文假定你熟悉所演示的编程语言以及用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能。 但是,它们不会修改这些示例以提供附加的功能或构造过程来满足你的特定要求。-
单击“ 开始”,指向 “所有程序”,指向“ 附件”,然后单击“ 记事本”。
-
将以下代码粘贴到记事本文档中。
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}" Const SE_VPS_NAME = "AccessRuleSendAcceptEncodingHeader" 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
-
将记事本文件另存为“AccessRuleSendAcceptEncodingHeader.vbs”。
-
双击 .vbs 文件以运行脚本。
若要禁用新的配置参数,请执行以下步骤:
-
单击“ 开始”,指向 “所有程序”,指向“ 附件”,然后单击“ 记事本”。
-
将以下代码粘贴到记事本文档中。
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}" Const SE_VPS_NAME = "AccessRuleSendAcceptEncodingHeader" Const SE_VPS_VALUE = false 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 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
-
将记事本文件另存为“Disable_AccessRuleSendAcceptEncodingHeader.vbs”。
-
双击 .vbs 文件以运行脚本。
状态
Microsoft 已经确认这是一个列于“适用范围”部分的 Microsoft 产品问题。