ISA Server 2004, ISA Server 2006 или Windows Essential Business Server 2008 блокирует запросы, содержащие заголовок HTTP для приема-кодирования при использовании прокси-сервера переадресации


Проблемы


На сервере, на котором запущены Microsoft Internet Security and Acceleration (ISA) Server 2004 с пакетом обновления 2 (SP2) или Windows Essential Business Server 2008, отключите следующие два веб-фильтра.
  • Фильтр сжатия
  • Кэширование сжатого содержимого фильтром
После этого ISA Server 2004 или Windows Essential Business Server 2008 блокирует запросы, которые включают заголовок HTTP приема-кодирования при использовании прокси-сервера пересылки. Эти веб-фильтры были введены в ISA Server 2004 с пакетом обновления 2 (SP2) или Windows Essential Business Server 2008. Вы можете отключить эти веб-фильтры вследствие проблем совместимости программ, связанных с некоторыми веб-серверами.

Решение


Сведения о пакете обновления

Чтобы устранить эту проблему, установите ISA Server 2004 с пакетом обновления 3 (SP3), а затем выполните сценарий Microsoft Visual Basic, описанный в этом разделе. Для получения дополнительных сведений о том, как получить последний пакет обновления для ISA Server 2004, щелкните следующий номер статьи базы знаний Майкрософт:
891024 Как получить последний пакет обновления для ISA Server 2004
После установки пакета обновления выполните следующий сценарий, чтобы включить новый параметр конфигурации. Этот новый параметр позволяет ISA Server пересылать запросы, содержащие заголовок HTTP для приема-кодирования, если фильтры сжатия отключены в сценарии пересылки прокси-сервера. Для этого выполните указанные ниже действия. Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации, не выполняя либо подразумеваемых. Сюда относится, но не ограничивается подразумеваемым гарантийным обязательством о товаре или пригодности для определенной цели. В этой статье предполагается, что вы знакомы с языком программирования, который вы продемонстрировали, и с инструментами, используемыми для создания и отладки процедур. Специалисты службы поддержки Майкрософт могут объяснить особенности конкретных процедур. Однако они не изменяют эти примеры для предоставления дополнительной функциональности или создания процедур, отвечающих вашим конкретным требованиям.
  1. Нажмите кнопку Пуск, наведите указатель на пункт все программы, выберите стандартныеи выберите Блокнот.
  2. Вставьте следующий код в документ блокнота.
    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. Сохраните файл "Блокнот" в формате "AccessRuleSendAcceptEncodingHeader. vbs".
  4. Дважды щелкните vbs-файл, чтобы запустить сценарий.
Чтобы отключить новый параметр конфигурации, выполните указанные ниже действия.
  1. Нажмите кнопку Пуск, наведите указатель на пункт все программы, выберите стандартныеи выберите Блокнот.
  2. Вставьте следующий код в документ блокнота.
    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. Сохраните файл "Блокнот" в формате "Disable_AccessRuleSendAcceptEncodingHeader. vbs".
  4. Дважды щелкните vbs-файл, чтобы запустить сценарий.

Статус


Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".