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".