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:

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

  2. 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
  3. Simpan berkas sebagai berkas skrip Microsoft Visual Basic dengan menggunakan ekstensi nama berkas .vbs. Sebagai contoh, simpan berkas menggunakan nama berikut ini:

    EnableKB940248.vbs

  4. Pada prompt perintah, pindahkan ke lokasi tempat Anda menyimpan berkas EnableKB940248.vbs.

  5. 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".

Perlu bantuan lainnya?

Ingin opsi lainnya?

Jelajahi manfaat langganan, telusuri kursus pelatihan, pelajari cara mengamankan perangkat Anda, dan banyak lagi.

Komunitas membantu Anda bertanya dan menjawab pertanyaan, memberikan umpan balik, dan mendengar dari para ahli yang memiliki pengetahuan yang luas.