ISA Server 2004, ISA Server 2006 nebo Windows Essential Business Server 2008 blokuje požadavky, které obsahují hlavičku protokolu HTTP Accept-Encoding, když se používá předávací proxy server


Příznaky


Na serveru, na kterém běží Microsoft Internet Security and Acceleration (ISA) Server 2004 s aktualizací Service Pack 2 nebo Windows Essential Business Server 2008, zakážete následující dva webové filtry:
  • Kompresní filtr
  • Ukládání komprimovaného filtru obsahu do mezipaměti
Po provedení této akce vám ISA Server 2004 nebo Windows Essential Business Server 2008 zablokuje žádosti, které obsahují hlavičku protokolu HTTP Accept-Encoding, když se používá předávací proxy server. Tyto webové filtry byly představeny na ISA Server 2004 Service Pack 2 nebo Windows Essential Business Server 2008. Tyto webové filtry můžete zakázat kvůli problémům s kompatibilitou programů, které zahrnují některé webové servery.

Řešení


Informace o aktualizaci Service Pack

Tento problém vyřešíte tak, že nainstalujete ISA Server 2004 Service Pack 3 (SP3) a potom spustíte skript Microsoft Visual Basic, který je uvedený v této části. Další informace o tom, jak získat nejnovější aktualizaci Service Pack pro ISA Server 2004, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
891024 Jak získat nejnovější aktualizaci Service Pack pro ISA Server 2004
Po instalaci aktualizace Service Pack spusťte následující skript a povolte nový konfigurační parametr. Tento nový parametr umožňuje přesměrovat žádosti serveru ISA Server, které obsahují hlavičku protokolu HTTP Accept-Encoding, pokud jsou kompresní filtry ve scénáři předávacího serveru proxy zakázané. Postupujte takto: Společnost Microsoft nabízí příklady programování pouze pro ilustraci bez záruky výslovně uvedené nebo implicitně předpokládaných. To zahrnuje, ale není omezeno na implicitně odvozené záruky obchodovatelnosti nebo vhodnosti pro určitý účel. V tomto článku se předpokládá, že jste obeznámeni s programovacím jazykem, který se vám seznámí, a s nástroji, které se používají k vytváření a ladění procedur. Pracovníci podpory Microsoftu mohou vysvětlit funkčnost konkrétního postupu. Nicméně tyto příklady neupraví, aby bylo možné přidat další funkce nebo postupovat podle konkrétních požadavků.
  1. Klikněte na tlačítko Start, přejděte na příkaz všechny programy, přejděte na položku příslušenstvía potom klikněte na příkaz Poznámkový blok.
  2. Do dokumentu programu Poznámkový blok vložte následující kód.
    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "AccessRuleSendAcceptEncodingHeader"Const SE_VPS_VALUE = trueSub 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 IfEnd SubSub CheckError()    If Err.Number <> 0 Then        WScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description        Err.Clear    End IfEnd SubSetValue
  3. Uložte soubor poznámkového bloku jako "AccessRuleSendAcceptEncodingHeader. vbs".
  4. Poklikáním na soubor VBS spusťte skript.
Nový konfigurační parametr zakážete takto:
  1. Klikněte na tlačítko Start, přejděte na příkaz všechny programy, přejděte na položku příslušenstvía potom klikněte na příkaz Poznámkový blok.
  2. Do dokumentu programu Poznámkový blok vložte následující kód.
    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
  3. Uložte soubor poznámkového bloku jako Disable_AccessRuleSendAcceptEncodingHeader. vbs.
  4. Poklikáním na soubor VBS spusťte skript.

Stav


Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.