Ενδέχεται να εμφανιστούν μηνύματα λάθους, όταν εκτελείτε αναζήτηση ή εντοπισμό σφαλμάτων σε μια εφαρμογή του ASP.NET μετά την εγκατάσταση της ενημερωμένης έκδοσης ασφαλείας 887219 (MS05-004)

Περίληψη
Μετά την εγκατάσταση της ενημερωμένης έκδοσης ασφαλείας MS05-004 και κατά την περιήγηση ή την προσπάθεια εντοπισμού σφαλμάτων σε ορισμένες εφαρμογές ASP.NET, ενδέχεται να αντιμετωπίσετε ορισμένα σφάλματα. Αυτό το άρθρο περιγράφει τα διαφορετικά μηνύματα σφάλματος που μπορεί να λάβετε. Επίσης παρέχει τις λύσεις για αυτά τα προβλήματα.
Συμπτώματα
Μετά την εγκατάσταση της ενημερωμένης έκδοσης ασφαλείας MS05-004 και κατά την περιήγηση ή την προσπάθεια εντοπισμού σφαλμάτων σε μια εφαρμογή Microsoft ASP.NET, όπου η διεύθυνση URL περιέχει μια τελική ανάστροφη κάθετο (\), ενδέχεται να λάβετε ένα από τα παρακάτω μηνύματα σφάλματος:
Δεν είναι δυνατή η εύρεση του πόρου.
Περιγραφή: HTTP 404. Ο πόρος που αναζητάτε (ή μία από τις εξαρτήσεις του) μπορεί να έχει καταργηθεί, να έχει αλλάξει το όνομά του ή να μην είναι διαθέσιμος προσωρινά. Διαβάστε την παρακάτω διεύθυνση URL και βεβαιωθείτε ότι την έχετε γράψει σωστά.

Error while trying to run project: Unable to start debugging on the web server. (Παρουσιάστηκε σφάλμα κατά την προσπάθεια εκτέλεσης του έργου: Δεν είναι δυνατή η έναρξη εντοπισμού σφαλμάτων στο διακομιστή Web.) Δεν ήταν δυνατή η έναρξη του εντοπισμού σφαλμάτων ASP.NET ή ATL Server. Βεβαιωθείτε ότι ο διακομιστής ASP.NET ή ATL είναι εγκατεστημένος αυτήν τη στιγμή στο διακομιστή.
Αιτία
Αυτό το πρόβλημα θα εμφανιστεί, εάν η διεύθυνση URL που καθορίζεται στη μετα-βάση Microsoft Internet Information Services (IIS) περιέχει μια τελική ανάστροφη κάθετο.
Προτεινόμενη αντιμετώπιση
Για να επιλύσετε αυτό το πρόβλημα, καταργήστε την τελική ανάστροφη κάθετο στη μετα-βάση IIS για τη διεύθυνση URL που καθορίζεται για την εφαρμογή Web που επηρεάζεται. Για να γίνει αυτό, μπορείτε να χρησιμοποιήσετε μία από τις ακόλουθες μεθόδους.

Μέθοδος 1: Χρήση της Διαχείρισης IIS (IIS Manager)

  1. Κάντε κλικ στο μενού Έναρξη (Start), κατόπιν στην επιλογή Εκτέλεση (Run), πληκτρολογήστε cmd και, τέλος, κάντε κλικ στο κουμπί OK.
  2. Εντοπίστε τον κατάλογο %systemroot%\system32\inetsrv.
  3. Στη γραμμή εντολών, πληκτρολογήστε inetmgr για να ανοίξετε τη Διαχείριση IIS (IIS Manager).
  4. Κάντε δεξιό κλικ στην τοποθεσία Web για τη διεύθυνση URL που θέλετε να αλλάξετε και, στη συνέχεια, κάντε κλικ στην επιλογή Ιδιότητες (Properties).
  5. Εάν η εφαρμογή που επηρεάζεται είναι ένας εικονικός κατάλογος που βρίσκεται στην τοποθεσία Web, κάντε κλικ στην καρτέλα Κατάλογος (Directory) και, στη συνέχεια, καταργήστε την τελική ανάστροφη κάθετο από τη διαδρομή που καθορίζεται στο πλαίσιο κειμένου Τοπική διαδρομή (Local path).

    Εάν η εφαρμογή που επηρεάζεται βρίσκεται στον ριζικό κατάλογο στην τοποθεσία Web, κάντε κλικ στην καρτέλα Κεντρικός κατάλογος (Home Directory) και, στη συνέχεια, καταργήστε την τελική ανάστροφη κάθετο από τη διαδρομή που καθορίζεται στο πλαίσιο κειμένου Τοπική διαδρομή (Local path).
  6. Κάντε κλικ στο κουμπί Εφαρμογή (Apply) και κατόπιν κάντε κλικ στο κουμπί OK.

Μέθοδος 2: Χρήση δέσμης ενεργειών .vbs

  1. Χρησιμοποιήστε το παρακάτω παράδειγμα κώδικα για να δημιουργήσετε μια δέσμη ενεργειών .vbs:
    Option ExplicitDim objWebService, objWebSiteDim objSite, objArgs, strServerDim WshNetworkSet objArgs = WScript.ArgumentsIf objArgs.Length = 1 Then	strServer = objArgs(0)ElseIf  objArgs.Length = 0 Then	Set WshNetwork = CreateObject("WScript.Network")	strServer = WshNetwork.ComputerNameElse	WScript.Echo "Usage: CScript ModifyVDir.vbs [servername]"	WScript.QuitEnd IfWScript.Echo "Connecting to " & strServerSet 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 IfNextWScript.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	NextEnd Sub
  2. Εκτελέστε τη δέσμη ενεργειών από τη γραμμή εντολών .vbs. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:
    1. Κάντε κλικ στο μενού Έναρξη (Start), κατόπιν στην επιλογή Εκτέλεση (Run), πληκτρολογήστε cmd και, τέλος, κάντε κλικ στο κουμπί OK.
    2. Στη γραμμή εντολών, πληκτρολογήστε cscript [file_name.vbs].

      Σημείωση Το στοιχείο file_name είναι ένα σύμβολο κράτησης θέσης για το όνομα της δέσμης ενεργειών .vbs που χρησιμοποιείτε.
    3. Για να κλείσετε τη γραμμή εντολών, πληκτρολογήστε exit.
Περισσότερες πληροφορίες
Μετά την εφαρμογή αυτής της ενημερωμένης έκδοσης ασφαλείας, το ASP.NET εκτελεί πιο αυστηρούς ελέγχους για την εγκυρότητα τόσο των φυσικών διαδρομών όσο και των εικονικών διαδρομών που ζητήθηκαν.
Αναφορές
Για πρόσθετες πληροφορίες σχετικά με την ενημερωμένη έκδοση ασφαλείας MS05-004, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
887219 MS05-004: Ένα θέμα ευπάθειας επικύρωσης διαδρομής του ASP.NET θα μπορούσε να επιτρέψει μη εξουσιοδοτημένη πρόσβαση
Ιδιότητες

Αναγνωριστικό άρθρου: 894670 - Τελευταία αναθεώρηση: 04/10/2009 06:51:14 - Αναθεώρηση: 2.7

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0, Microsoft .NET Framework 1.0, Microsoft .NET Framework 1.0 Service Pack 1, Microsoft .NET Framework 1.0 Service Pack 2, Microsoft .NET Framework 1.0 Service Pack 3, Microsoft .NET Framework 1.1, Microsoft .NET Framework 1.1 Service Pack 1

  • kbhttp404 kbdev kbasp kbtshoot kberrmsg kbprb KB894670
Σχόλια