Problembeschreibung

Wenn ein Benutzer auf eine SharePoint-Website zugreift, die in Microsoft Internet Security and Acceleration (ISA) Server 2006, ISA Server 2006 SP1 oder in Windows Essential Business Server 2008 veröffentlicht wird, erhält der Benutzer möglicherweise eine der folgenden Fehlermeldungen:Fehlermeldung 1

HTTP 401 Nicht autorisiert

Fehlermeldung 2

HTTP 500 Der Server verweigerte den angegebenen URL (Uniform Resource Locator). Wenden Sie sich an den Serveradministrator.

Das Problem tritt auf, wenn die folgenden Bedingungen vorliegen:

  • Im Weblistener, den die SharePoint-Webveröffentlichungsregel verwendet, wird die HTML-Formularauthentifizierung konfiguriert.

  • Der Webclient sendet eine POST-Anforderung an die SharePoint-Website.

  • Die URL der POST-Anforderung enthält erweiterte Zeichen. Die URL enthält z. B. é, é oder .

Ursache

Dieses Problem tritt auf, weil ISA Server oder Windows Essential Business Server 2008 keine URL analysieren können, die erweiterte Zeichen enthält. In diesem Fall lehnt ISA Server oder Windows Essential Business Server 2008 die POST-Anforderung ab, die der Client sendet.

Lösung

Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:

  1. Wenden Sie den Hotfix an, der in Microsoft Knowledge Base-Artikel 940250 beschrieben wird. Weitere Informationen erhalten Sie, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

    940250 Beschreibung des ISA Server 2006-Hotfixpakets: 16. Juli 2007

  2. Kopieren Sie das folgende Skript in Notepad:Hinweis Zum Beheben dieses Problems in ISA Server 2006 verwenden Sie das folgende Skript. Sie müssen den Hotfix in diesem Artikel für ISA Server 2006 SP1 nicht anwenden, aber Sie müssen das Skript verwenden.

    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. Speichern Sie die Datei als Microsoft Visual Basic-Skriptdatei mithilfe der .vbs Dateinamenerweiterung. Speichern Sie die Datei beispielsweise mit dem folgenden Namen:

    EnableKB940248.vbs

  4. Wechseln Sie an einer Eingabeaufforderung zu dem Speicherort, an dem Sie die Datei EnableKB940248.vbs gespeichert haben.

  5. Führen Sie den folgenden Befehl aus:

    cscript EnableKB940248.vbs

Hinweis Nachdem Sie diese Schritte ausgeführt haben, kann nur der Abfrageteil der URL erweiterte Zeichen enthalten. Der Abfrageteil folgt dem Fragezeichen (?) in der URL. Der Teil, der vor dem Fragezeichen in der URL steht, darf auch nach Derverwendung dieser Auflösung keine erweiterten Zeichen enthalten. Wenn Sie die Änderungen entfernen möchten, die beim Ausführen des Skripts in Schritt 5 vorgenommen werden, führen Sie das folgende Skript aus:

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 hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Wie zufrieden sind Sie mit der Übersetzungsqualität?
Was hat Ihre Erfahrung beeinflusst?

Vielen Dank für Ihr Feedback!

×