Du får ett felmeddelande när du öppnar en webbplats via ISA Server 2004 som har webbfiltret för komprimerings filter aktiverat


Symptom


Tänk dig följande situation:
  • Du kommer åt en webbplats som publiceras i Microsoft Internet Security and Acceleration (ISA) Server 2004. Eller du öppnar en webbplats med hjälp av ISA Server 2004 som webbproxy.
  • Webbfiltret för komprimerings filter är aktiverat i ISA Server 2004.
  • Webbplatsen skickar ett HTTP/0.9-svar till klienten.
I det här scenariot visas något av följande felmeddelanden. Felmeddelande 1
HTTP/1.1 502 Proxyfel (det angivna nätverksnamnet är inte längre tillgängligt.)
Felmeddelande 2
Felkod 64: värd inte availableBackground: gatewayen eller proxyservern förlorade anslutningen till webbservern.

Orsak


Ett HTTP/0.9-svar har bara en brödtext, men inga rubriker. Webbplatsen stänger anslutningen för att indikera slutet på ett svar. Webbfiltret för komprimerings filter i ISA Server förväntar sig dock ett HTTP/1.0-eller HTTP/1.1-svar. Webbfiltret för komprimerings filtret känner inte igen ett HTTP/0.9-svar. Webbfiltret för komprimerings filter förutsätter därför att anslutningen bryts eller återställs innan webbplatsen kan skicka alla HTTP-svarshuvuden.

Lösning


Lös problemet så här:
  1. Installera snabbkorrigeringspaketet som beskrivs i följande artikel i Microsoft Knowledge Base:
    945043 Beskrivning av snabbkorrigeringspaket för ISA Server 2004:12 november 2007
  2. Starta anteckningar.
  3. Kopiera följande kod och klistra in den i anteckningar.
    Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "EnableHotfix944114"Const SE_VPS_VALUE = trueSub SetValue()    ' Create the root object.    Dim root  ' The FPCLib.FPC root object    Set root = CreateObject("FPC.Root")    'Declare the other required objects.    Dim array       ' An FPCArray object    Dim VendorSets  ' An FPCVendorParametersSets collection    Dim VendorSet   ' An FPCVendorParametersSet object    ' Get references to the array object    ' and to 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
  4. Spara filen som en Microsoft Visual Basic-skriptfil med filnamnstillägget. vbs. Använd till exempel följande namn för att spara filen:
    EnableHotfix944114.vbs
  5. Ändra till den plats där du sparade filen i steg 4 vid en kommandotolk och kör sedan följande kommando:
    cscript EnableHotfix944114. vbs
Notera Om du vill återgå till standardinställningen redigerar du skriptet genom att ändra "Const SE_VPS_VALUE = true" till "Const SE_VPS_VALUE = false". Spara skriptet och kör det igen.

Lösning


Undvik problemet genom att inaktivera webbfiltret för komprimerings filtret i ISA Server.

Status


Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "gäller".