Symptomy
Rozpatrzmy następujący scenariusz:
-
Aby uzyskać dostęp do witryny sieci Web, należy użyć programu Microsoft Internet Security and Acceleration (ISA) Server 2004 lub ISA Server 2006 jako serwera proxy sieci Web.
-
Wykonywanie operacji POST w witrynie sieci Web.
-
Witryna sieci Web wysyła odpowiedź "401 wymagane uwierzytelnienie" do klienta.
Jednak program ISA Server spadnie odpowiedź "wymagane uwierzytelnienie 401" zamiast przekazywania odpowiedzi do klienta. Ten problem może spowodować niepowodzenie próby dostępu do sieci Web. Na przykład podczas próby przekazania dużego pliku do witryny sieci Web, operacja przekazywania może limitu czasu.
Rozwiązanie
Aby rozwiązać ten problem, wykonaj następujące czynności:
-
Jeśli używasz programu ISA Server 2004, zastosuj pakiet poprawki opisanej w następującym artykule z bazy wiedzy Microsoft Knowledge Base:
940709 Opis pakietu poprawek dla programu ISA Server 2004:25 lipca 2007Jeśli jest uruchomiony program ISA Server 2006, Zastosuj ostatni dodatek Service Pack dla programu ISA Server. Aby uzyskać więcej informacji, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
954258 jak uzyskać najnowszy dodatek Service Pack dla programu Internet Security and Acceleration (ISA) Server 2006
-
Uruchom Notatnik.
-
Skopiuj poniższy kod, a następnie wklej go do Notatnika.
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "AllowPrematureServerResponse"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 objects that are needed. 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
-
Zapisz plik jako plik skryptu programu Microsoft Visual Basic przy użyciu rozszerzenia nazwy pliku vbs. Na przykład użyj następującej nazwy, aby zapisać plik:
AllowPrematureServerResponse.vbs
-
Uruchom wiersz polecenia, przejdź do lokalizacji, w której zapisano plik AllowPrematureServerResponse. vbs, a następnie uruchom następujące polecenie:
cscript AllowPrematureServerResponse. vbs
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft, które są wymienione w sekcji "dotyczy".
Więcej informacji
Aby uzyskać więcej informacji dotyczących sposobu instalowania poprawek i aktualizacji programu ISA Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
885957 jak zainstalować poprawki i aktualizacje programu ISA Server