徵兆
在執行 Microsoft Internet Security and Acceleration (ISA) Server 2004 Service Pack 2 或 Windows Essential Business Server 2008 的伺服器上,停用下列兩個網頁篩選:
-
壓縮篩選
-
快取壓縮的內容篩選
執行此動作之後,ISA Server 2004 或 Windows Essential Business Server 2008 會在使用轉寄 Proxy 時封鎖包含Accept-Encoding HTTP 標頭的要求。
這些網頁篩選是在 ISA Server 2004 Service Pack 2 或 Windows Essential Business Server 2008 中導入。 您可能會因為程式相容性問題而停用這些網頁篩選器,這些問題牽涉到某些網頁伺服器。解決方案
Service Pack 資訊
若要解決此問題,請安裝 ISA Server 2004 Service Pack 3 (SP3) ,然後執行本節中提及的 Microsoft Visual Basic 腳本。
安裝 Service Pack 之後,請執行下列腳本以啟用新的組態參數。 如果轉寄 Proxy 案例中已停用壓縮篩選,此新參數可讓 ISA Server 轉寄包含 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 產品確實有上述問題。