Gejala
Ketika pengguna mengakses situs SharePoint Web yang diterbitkan di Microsoft Internet Security and Acceleration (ISA) Server 2006, ISA Server 2006 SP1 atau Windows Essential Business Server 2008, pengguna mungkin menerima salah satu pesan galat berikut:galat pesan 1
HTTP 401 tidak sah
Pesan galat 2
HTTP 500 server ditolak ditetapkan Uniform Resource Locator (URL). Hubungi server administrator.
Masalah ini terjadi jika kondisi berikut benar:
-
Di pendengar Web yang menggunakan aturan penerbitan SharePoint Web, otentikasi HTML Form dikonfigurasi.
-
Klien Web mengirimkan permintaan POST ke situs SharePoint Web.
-
URL permintaan POST berisi karakter diperluas. Sebagai contoh, URL berisi é, a atau è.
Penyebab
Masalah ini terjadi karena ISA Server atau Windows Essential Business Server 2008 tidak dapat memilah URL yang berisi karakter diperluas. Dalam hal ini, ISA Server atau Windows Essential Business Server 2008 menolak permintaan POST bahwa klien mengirimkan.
Pemecahan Masalah
Untuk mengatasi masalah ini, ikuti langkah-langkah berikut:
-
Terapkan hotfix yang dijelaskan di artikel Pangkalan Pengetahuan Microsoft 940250. Untuk informasi selengkapnya, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
Deskripsi paket hotfix ISA Server 2006 940250 : 16 Juli 2007
-
Salin skrip berikut ini ke Notepad:catatan untuk menyelesaikan masalah ini di ISA Server 2006, gunakan skrip berikut ini. Anda tidak harus menerapkan perbaikan terbaru dalam artikel ini untuk ISA Server 2006 SP1, namun Anda harus menggunakan skrip.
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
-
Simpan berkas sebagai berkas skrip Microsoft Visual Basic dengan menggunakan ekstensi nama berkas .vbs. Sebagai contoh, simpan berkas menggunakan nama berikut ini:
EnableKB940248.vbs
-
Pada prompt perintah, pindahkan ke lokasi tempat Anda menyimpan berkas EnableKB940248.vbs.
-
Jalankan perintah berikut ini:
cscript EnableKB940248.vbs
Catatan Setelah Anda mengikuti langkah-langkah ini, hanya bagian permintaan dari URL dapat berisi karakter diperluas. Bagian permintaan mengikuti tanda tanya (?) di URL. Bagian yang hadir sebelum tanda tanya di URL tidak dapat berisi karakter diperluas bahkan setelah Anda menggunakan resolusi ini. Jika Anda ingin menghapus perubahan yang dibuat saat Anda menjalankan skrip pada langkah 5, jalankan skrip berikut ini:
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
Status
Microsoft telah mengonfirmasi bahwa ini adalah masalah pada produk Microsoft yang tercantum di bagian "Berlaku untuk".