Simptome
Când un utilizator accesează un site SharePoint Web care este publicat în Microsoft Internet Security and Acceleration (ISA) Server 2006, ISA Server 2006 SP1 sau Windows Essential Business Server 2008, este posibil să primească unul dintre următoarele mesaje de eroare:eroare mesajul 1
HTTP 401 Unauthorized
Mesaj de eroare 2
HTTP 500 server refuzat specificat Uniform Resource Locator (URL). Contactați administratorul serverului.
Această problemă apare atunci când se îndeplinesc următoarele condiții:
-
În listenerul Web care utilizează regula de publicare SharePoint Web, autentificare formular HTML este configurat.
-
Web client trimite o solicitare POST site-ul SharePoint.
-
Adresa URL a solicitarea POST conține caractere extinse. De exemplu, URL-ul conține é, à sau è.
Cauză
Această problemă apare deoarece ISA Server sau Windows Essential Business Server 2008 nu poate analiza un URL care conține caractere extinse. În acest caz, ISA Server sau Windows Essential Business Server 2008 respinge solicitarea POST care clientul trimite.
Rezolvare
Pentru a rezolva această problemă, urmați acești pași:
-
Aplicați remedierea rapidă descrisă în articolul din baza de cunoștințe Microsoft 940250. Pentru mai multe informații, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
940250 Descrierea pachetului de remediere rapidă ISA Server 2006: 16 iulie 2007
-
Copiați următorul script în Notepad:Notă pentru a rezolva această problemă în ISA Server 2006, utilizați următorul script. Nu trebuie să aplicați remedierea rapidă din acest articol pentru ISA Server 2006 SP1, dar trebuie să utilizaţi scriptul.
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"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
-
Salvați fișierul ca fișier script Microsoft Visual Basic, utilizând extensia numelui de fișier .vbs. De exemplu, Salvați fișierul utilizând următorul nume:
EnableKB940248.vbs
-
La promptul de comandă, mutați în locația unde ați salvat fișierul EnableKB940248.vbs.
-
Executaţi următoarea comandă:
cscript EnableKB940248.vbs
Notă După ce urmați acești pași, numai partea de interogare URL-ul poate conține caractere extinse. Partea de interogare urmează semn de întrebare (?) în URL-ul. Partea care precede semn de întrebare în URL-ul nu poate conține caractere extinse, chiar și după ce utilizați această rezolvare. Dacă doriți să eliminați modificările efectuate atunci când se execută scriptul din pasul 5, executați următorul script:
Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"Const SE_VPS_VALUE = FalseSub SetValue()' Create the root object.Dim root ' The FPCLib.FPC root objectroot = CreateObject("FPC.Root")'Declare the other objects that are needed.Dim array ' An FPCArray objectDim VendorSets ' An FPCVendorParametersSets collectionDim VendorSet ' An FPCVendorParametersSet object' Get references to the array object' and to the network rules collection.array = root.GetContainingArrayVendorSets = array.VendorParametersSetsOn Error Resume NextVendorSet = VendorSets.Item(SE_VPS_GUID)If Err.Number <> 0 ThenErr.Clear()' Add the itemVendorSet = VendorSets.Add(SE_VPS_GUID)CheckError()WScript.Echo("New VendorSet added... " & VendorSet.Name)ElseWScript.Echo("Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME))End IfIf VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE ThenErr.Clear()VendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUEIf Err.Number <> 0 ThenCheckError()ElseVendorSets.Save(False, True)CheckError()If Err.Number = 0 ThenWScript.Echo("Done with " & SE_VPS_NAME & ", saved!")End IfEnd IfElseWScript.Echo("Done with " & SE_VPS_NAME & ", no change!")End IfEnd SubSub CheckError()If Err.Number <> 0 ThenWScript.Echo("An error occurred: 0x" & Hex(Err.Number) & " " & Err.Description)Err.Clear()End IfEnd SubSetValue Change to:[INSERT CORRECTION]Const SE_VPS_GUID = "{143F5698-103B-12D4-FF34-1F34767DEabc}"Const SE_VPS_NAME = "CookieFilterDecodeUEncoding"Const SE_VPS_VALUE = falseSub SetValue()' Create the root object.Dim root ' The FPCLib.FPC root objectSet root = CreateObject("FPC.Root")'Declare the other objects that are needed.Dim array ' An FPCArray objectDim VendorSets ' An FPCVendorParametersSets collectionDim VendorSet ' An FPCVendorParametersSet object' Get references to the array object' and to the network rules collection.Set array = root.GetContainingArraySet VendorSets = array.VendorParametersSetsOn Error Resume NextSet VendorSet = VendorSets.Item( SE_VPS_GUID )If Err.Number <> 0 ThenErr.Clear' Add the itemSet VendorSet = VendorSets.Add( SE_VPS_GUID )CheckErrorWScript.Echo "New VendorSet added... " & VendorSet.NameElseWScript.Echo "Existing VendorSet found... value- " & VendorSet.Value(SE_VPS_NAME)End Ifif VendorSet.Value(SE_VPS_NAME) <> SE_VPS_VALUE ThenErr.ClearVendorSet.Value(SE_VPS_NAME) = SE_VPS_VALUEIf Err.Number <> 0 ThenCheckErrorElseVendorSets.Save false, trueCheckErrorIf Err.Number = 0 ThenWScript.Echo "Done with " & SE_VPS_NAME & ", saved!"End IfEnd IfElseWScript.Echo "Done with " & SE_VPS_NAME & ", no change!"End IfEnd SubSub CheckError()If Err.Number <> 0 ThenWScript.Echo "An error occurred: 0x" & Hex(Err.Number) & " " & Err.DescriptionErr.ClearEnd IfEnd SubSetValue
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.