Nachdem Sie Sicherheitsupdate 887219 (MS05-004) installiert haben, werden möglicherweise Fehlermeldungen angezeigt, wenn Sie eine ASP.NET-Anwendung durchsuchen oder debuggen möchten.


Zusammenfassung


Nachdem Sie Sicherheitsupdate MS05-004 installiert haben, treten möglicherweise Fehler auf, wenn Sie bestimmte ASP.NET-Anwendungen durchsuchen oder versuchen, sie zu debuggen. In diesem Artikel werden die verschiedenen Fehlermeldungen beschrieben, die Sie möglicherweise erhalten. Sie bietet außerdem Lösungen für diese Probleme.

Problembeschreibung


Nach der Installation von Sicherheitsupdate MS05-004 wird möglicherweise eine der folgenden Fehlermeldungen angezeigt, wenn Sie eine Microsoft ASP.NET-Anwendung, deren URL am Ende einen umgekehrten Schrägstrich (\) aufweist, durchsuchen oder debuggen möchten:
Die Ressource kann nicht gefunden werden.


Beschreibung: HTTP 404. Die gesuchte Ressource oder eine ihrer Abhängigkeiten wurde möglicherweise entfernt, umbenannt oder ist vorübergehend nicht verfügbar. Überprüfen Sie folgende URL, und stellen Sie sicher, dass sie richtig geschrieben wurde.

Fehler beim Ausführen des Projekts: Das Debuggen kann nicht auf dem Webserver gestartet werden. Das Debugging für ASP.NET oder ATL-Server konnte nicht gestartet werden. Stellen Sie sicher, dass ASP.NET bzw. ATL-Server aktuell auf dem Server installiert ist.

Ursache


Das Problem tritt auf, wenn die in der Microsoft IIS-Metabasis (Internet Information Services) angegebene URL am Ende einen umgekehrten Schrägstrich aufweist.

Lösung


Um das Problem zu beheben, entfernen Sie den umgekehrten Schrägstrich am Ende der URL, die in der IIS-Metabasis für die betroffene Webanwendung angegeben ist. Wenden Sie hierzu eine der folgenden Methoden an.

Methode 1: Verwenden des IIS-Managers

  1. Klicken Sie auf Start und auf Ausführen, geben Sie cmd ein, und klicken Sie auf OK.
  2. Suchen Sie das Verzeichnis "%systemroot%\system32\inetsrv".
  3. Geben Sie in der Eingabeaufforderung die Zeichenfolge „inetmgr" ein, um den IIS-Manager zu öffnen.
  4. Klicken Sie mit der rechten Maustaste auf die Website für die URL, die Sie ändern möchten und klicken Sie dann auf „Eigenschaften".
  5. Wenn es sich bei der betroffenen Anwendung um ein virtuelles Verzeichnis unter der Website handelt, klicken Sie auf die Registerkarte „Verzeichnis" und entfernen Sie anschließend den umgekehrten Schrägstrich aus dem im Textfeld „Lokaler Pfad" angegebenen Pfad.

    Wenn sich die betroffene Anwendung im Stammverzeichnis der Website befindet, klicken Sie auf die Registerkarte „Basisverzeichnis" und entfernen Sie anschließend den umgekehrten Schrägstrich aus dem im Textfeld „Lokaler Pfad" angegebenen Pfad.
  6. Klicken Sie auf Übernehmen und dann auf OK.

Methode 2: Verwenden eines VBS-Skripts

  1. Verwenden Sie das folgende Codebeispiel, um ein VBS-Skript zu erstellen:
    Option Explicit

    Dim objWebService, objWebSite
    Dim objSite, objArgs, strServer
    Dim WshNetwork

    Set objArgs = WScript.Arguments

    If objArgs.Length = 1 Then
    strServer = objArgs(0)
    ElseIf objArgs.Length = 0 Then
    Set WshNetwork = CreateObject("WScript.Network")
    strServer = WshNetwork.ComputerName
    Else
    WScript.Echo "Usage: CScript ModifyVDir.vbs [servername]"
    WScript.Quit
    End If
    WScript.Echo "Connecting to " & strServer

    Set objWebService = GetObject("IIS://" & strServer & "/W3SVC")

    For Each objWebSite in objWebService
    Set objSite = GetObject(objWebSite.AdsPath)
    If objSite.Class = "IIsWebServer" Then
    WScript.Echo objSite.AdsPath
    EnumVDir objSite, 1
    End If
    Next

    WScript.Echo "Done processing."

    Sub EnumVDir(objVDir, i)
    Dim objSubVDir, objDir
    Dim strNewPath

    For Each objSubVDir in objVDir
    If objSubVDir.Class = "IIsWebVirtualDir" Then
    Set objDir = GetObject(objSubVDir.AdsPath)

    If ((Right(objDir.Path, 1) = "\") and (Right(objDir.Path, 2) <> ":\")) Then
    WScript.Echo Space(i*3) & objDir.AdsPath
    WScript.Echo Space(i*3) & "Path = " & objDir.Path

    strNewPath = Left(objDir.Path, Len(objDir.Path) - 1)
    WScript.Echo Space(i*3) & "New Path = " & strNewPath

    objDir.Put "Path", strNewPath
    objDir.SetInfo
    End If

    EnumVDir objDir, i + 1
    End If
    Next
    End Sub

  2. Führen Sie das VBS-Skript aus der Befehlszeile aus. Gehen Sie hierzu wie folgt vor:
    1. Klicken Sie auf Start und auf Ausführen, geben Sie cmd ein, und klicken Sie auf OK.
    2. Geben Sie an der Eingabeaufforderung

      „cscript [Dateiname.vbs]"
      ein.

      Hinweis: „Dateiname" ist der Platzhalter für den Namen Ihres VBS-Skripts.
    3. Geben Sie „exit" ein, um die Eingabeaufforderung zu schließen.

Weitere Informationen


Nach der Installation dieses Sicherheitsupdates führt ASP.NET strengere Überprüfungen der Gültigkeit physischer und angeforderter virtueller Pfade aus.

Informationsquellen


Weitere Informationen zum Sicherheitsupdate MS05-004 finden Sie in folgendem Artikel der Microsoft Knowledge Base:

887219 MS05-004: Sicherheitsrisiko bei der ASP.NET-Pfadüberprüfung kann nicht autorisierten Zugriff ermöglichen