Symptomy
Na serwerze z uruchomionym programem Microsoft Internet Security and Acceleration (ISA) Server 2004 z dodatkiem Service Pack 2 lub Windows Essential Business Server 2008 wyłącz dwa następujące filtry sieci Web:
-
Filtr kompresji
-
Buforowanie filtru zawartości skompresowanej
Po wykonaniu tej czynności program ISA Server 2004 lub Windows Essential Business Server 2008 blokuje żądania zawierające nagłówek http Accept-Encoding, gdy jest używany serwer proxy przesyłania dalej.
Te filtry sieci Web zostały wprowadzone w programie ISA Server 2004 z dodatkiem Service Pack 2 lub Windows Essential Business Server 2008. Te filtry sieci Web można wyłączyć z powodu problemów ze zgodnością programów, które dotyczą niektórych serwerów sieci Web.
Rozwiązanie
Informacje o dodatku Service Pack
Aby rozwiązać ten problem, zainstaluj dodatek Service Pack 3 (SP3) dla programu ISA Server 2004, a następnie uruchom skrypt języka Microsoft Visual Basic wymieniony w tej sekcji.
Po zainstalowaniu dodatku Service Pack uruchom następujący skrypt, aby włączyć nowy parametr konfiguracji. Ten nowy parametr umożliwia serwerowi ISA przesyłanie dalej żądań zawierających nagłówek http Accept-Encoding, jeśli filtry kompresji są wyłączone w przypadku serwerów proxy przesyłanych dalej. W tym celu wykonaj następujące czynności.
Firma Microsoft udostępnia przykłady programowania tylko na ilustracje, bez gwarancji wyrażonej lub dorozumianej. Dotyczy to między innymi dorozumianych gwarancji przydatności handlowej lub przydatności do określonego celu. W tym artykule założono, że znasz język programowania, który jest prezentowany, oraz narzędzia służące do tworzenia i debugowania procedur. Inżynierowie pomocy technicznej firmy Microsoft mogą pomóc w objaśnieniu funkcjonalności określonej procedury. Nie będą jednak modyfikować tych przykładów w celu zapewnienia dodatkowych funkcji lub konstruowania procedur w celu spełnienia określonych wymagań.
-
Kliknij przycisk Start, wskaż polecenie Wszystkie programy, wskaż pozycję Akcesoria, a następnie kliknij pozycję Notatnik.
-
Wklej następujący kod do dokumentu Notatnika.
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
-
Zapisz plik Notatnika jako "AccessRuleSendAcceptEncodingHeader.vbs".
-
Kliknij dwukrotnie plik vbs, aby uruchomić skrypt.
Aby wyłączyć nowy parametr konfiguracji, wykonaj następujące czynności:
-
Kliknij przycisk Start, wskaż polecenie Wszystkie programy, wskaż pozycję Akcesoria, a następnie kliknij pozycję Notatnik.
-
Wklej następujący kod do dokumentu Notatnika.
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
-
Zapisz plik Notatnika jako "Disable_AccessRuleSendAcceptEncodingHeader.vbs".
-
Kliknij dwukrotnie plik vbs, aby uruchomić skrypt.
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".