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

  1. Kliknij przycisk Start, wskaż polecenie Wszystkie programy, wskaż pozycję Akcesoria, a następnie kliknij pozycję Notatnik.

  2. 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
    
  3. Zapisz plik Notatnika jako "AccessRuleSendAcceptEncodingHeader.vbs".

  4. Kliknij dwukrotnie plik vbs, aby uruchomić skrypt.

Aby wyłączyć nowy parametr konfiguracji, wykonaj następujące czynności:

  1. Kliknij przycisk Start, wskaż polecenie Wszystkie programy, wskaż pozycję Akcesoria, a następnie kliknij pozycję Notatnik.

  2. 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
    
  3. Zapisz plik Notatnika jako "Disable_AccessRuleSendAcceptEncodingHeader.vbs".

  4. Kliknij dwukrotnie plik vbs, aby uruchomić skrypt.

Stan

Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych w sekcji "Dotyczy".

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.