Ενεργές σελίδες διακομιστή επιστρέφει VBScript σφάλμα χρόνου εκτέλεσης '800a01ad'

Αναγν. άρθρου: 194801 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Συμπτώματα

Η χρήση CreateObject για να δημιουργήσετε ένα στοιχείο COM σε μια σελίδα Active Server Pages (ASP) μπορεί να έχει ως αποτέλεσμα το ακόλουθο μήνυμα λάθους:
Σφάλμα χρόνου εκτέλεσης Microsoft VBScript '800a01ad'
Δεν είναι δυνατή η δημιουργία αντικειμένου από το στοιχείο ActiveX
Το σφάλμα αυτό δημιουργείται συνήθως επειδή οι βιβλιοθήκες δυναμικής σύνδεσης (DLL) από την οποία εξαρτάται το αντικείμενο COM είναι ένα από τα εξής:
  • Λείπει από το σύστημα
  • Δεν υπάρχει στη διαδρομή συστήματος
  • Δεν είναι προσπελάσιμη από το σύστημα εξαιτίας των ρυθμίσεων ασφαλείας

Περισσότερες πληροφορίες

Κάθε ένα από τους ανωτέρω λόγους ισχύει για το αρχείο DLL που υλοποιεί το αντικείμενο COM καθώς και όλες τις εξαρτήσεις dll. Για παράδειγμα, εάν ένα αρχείο DLL COM στατικά συνδέσεις σε ένα αρχείο DLL Win32 και Win32 DLL λείπει από το δημιουργείται σύστημα, ένα σφάλμα 800a01ad.

Υπάρχουν πολλοί τρόποι για να καθορίσετε τις εξαρτήσεις DLL. Μεταξύ αυτών είναι η Εργαλείο Depends.exe, το οποίο συνοδεύει το κιτ ανάπτυξης λογισμικού (SDK) της πλατφόρμας και 98 Studio προγραμματιστή, και το βοηθητικό πρόγραμμα DUMPBIN, το οποίο εγκαθίσταται με Visual C++.

Τα ακόλουθα αρχεία είναι διαθέσιμα για λήψη από τη Microsoft Κέντρο λήψης:

Σύμπτυξη αυτής της εικόναςΑνάπτυξη αυτής της εικόνας
Λήψη
Άμεση λήψη του πακέτου Dependsia64version2.1.3623.exe.
Σύμπτυξη αυτής της εικόναςΑνάπτυξη αυτής της εικόνας
Λήψη
Άμεση λήψη του πακέτου Dependsx86version2.1.3623.exe.

Ημερομηνία έκδοσης: Ιουνίου 25,2002

Για πρόσθετες πληροφορίες σχετικά με τον τρόπο λήψης αρχείων υποστήριξης της Microsoft, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
119591 Τρόπος απόκτησης αρχείων υποστήριξης της Microsoft από ηλεκτρονικές υπηρεσίες
Microsoft εξέτασε αυτό το αρχείο για ιούς. Η Microsoft χρησιμοποίησε το πιο πρόσφατο λογισμικό εντοπισμού ιών που ήταν διαθέσιμο κατά την ημερομηνία που καταχωρήθηκε στο αρχείο. Το αρχείο είναι αποθηκευμένο σε διακομιστές με ενισχυμένη ασφάλεια που βοηθούν στην αποτροπή μη εξουσιοδοτημένων αλλαγών στο αρχείο. Για περισσότερες πληροφορίες σχετικά με αυτό το εργαλείο, επισκεφθείτε την ακόλουθη τοποθεσία Web Walker εξαρτήσεων:
http://www.dependencywalker.com
Η Microsoft παρέχει πληροφορίες επικοινωνίας με κατασκευαστές για να σας βοηθήσει να βρείτε τεχνική υποστήριξη. Αυτές οι πληροφορίες επικοινωνίας μπορεί να αλλάξουν χωρίς προειδοποίηση. Microsoft δεν εγγυάται την ακρίβεια των πληροφοριών επαφής τρίτων κατασκευαστών.

Για να χρησιμοποιήσετε Depends, απλά εκτελέστε το εργαλείο και το άνοιγμα του αρχείου DLL του εν λόγω. Για να χρησιμοποιήσετε το DUMPBIN για να προβάλετε τις εξαρτήσεις, εκτελέστε την ακόλουθη γραμμή εντολών "dumpbin /IMPORTS <name of="" dll="">". Το βοηθητικό πρόγραμμα Depends έχει το πλεονέκτημα της Εμφάνιση εξαρτήσεων εξαρτήσεις. Εμφανιζόταν ότι γρήγορης προβολής της Εξερεύνησης των Windows θα εμφανίζουν τις ίδιες πληροφορίες, αλλά έχει παρατηρηθεί ότι οι πληροφορίες που εμφανίζονται δεν είναι πάντοτε πλήρη. </name>

Περαιτέρω πληροφορίες σχετικά με κάθε μία από τις πιθανές προκαλεί τα εξής:

DLL που λείπουν από το σύστημα

DLL που υλοποιεί το αντικείμενο COM πρέπει να υπάρχει στο σύστημα και να έχει καταχωρηθεί με τη σωστή διαδρομή. Αποτυχία δημιουργίας αντικειμένου COM που είναι δεν έχει καταχωρηθεί σε όλα τα θα δημιουργήσει στην πραγματικότητα διαφορετικό σφάλμα:
Σφάλμα διακομιστή αντικειμένου ' ASP 0177: 800401f3'

Για να επαληθεύσετε ότι η διαδρομή στο μητρώο είναι σωστή, εκτελέστε το πρόγραμμα RegEdit και αναζήτησης για το αναγνωριστικό ΠΡΟΓΡΆΜΜΑΤΟΣ (εντοπίζεται σε κλήση CreateObject). Από το PROGID καταχώρηση, εγγραφή ή αντιγράψτε το CLSID στο Πρόχειρο και εντοπίστε την καταχώρηση για το CLSID. Αυτή η καταχώρηση θα πρέπει να περιέχει ένα κλειδί InprocServer32 με μια διαδρομή DLL. Το παρακάτω παράδειγμα δείχνει τη ροή της διαδικασίας:
   (from the asp file)
   set obj = Server.CreateObject("BadComponent.Badguy")

   (from RegEdit)
   HKEY_CLASSES_ROOT\BadComponent.BadGuy\CLSID
      {683DA7E0-5C73-11D2-80F6-0000F87A8236}

   HKEY_CLASSES_ROOT\CLSID\{683DA7E0-5C73-11D2-80F6-0000F87A8236}\ 
      InprocServer32 E:\Programs\COMPON~1\BADCOM~1\Debug\BADCOM~1.DLL
				

Οι ακόλουθες εντολές που εκτελούνται από μια γραμμή εντολών θα επιβεβαιώσει την ύπαρξη αυτού του αρχείου:
   E:\>cd E:\Programs\COMPON~1\BADCOM~1\Debug
   E:\Programs\COMPON~1\BADCOM~1\Debug>dir BADCOM~1.DLL

   10/14/98  11:18a               241,739 BadComponent.dll

                  1 File(s)        241,739 bytes
                             2,038,755,328 bytes free
				

Εάν δεν έχει καθοριστεί στο μητρώο για το αρχείο DLL, πρέπει να υπάρχει το αρχείο DLL στο διαδρομή συστήματος.

Ένα DLL COM μπορεί να εξαρτώνται από το Win32 dll που είναι στατικά συνδεδεμένο (DUMPBIN και Depends.exe εμφάνιση συνδέεται στατικά DLL). Για παράδειγμα, ένα αντικείμενο COM μπορεί να καλέσετε LoadLibrary() και να καλέσετε συναρτήσεις στις Win32 DLL. Ομοίως, το στοιχείο ελέγχου μπορεί να δημιουργήσετε αντικείμενα COM που περιέχονται σε Διαχωρίστε dll. Οποιοδήποτε από αυτά τα αρχεία dll ενδέχεται να λείπει, δεν έχουν καταχωρηθεί σωστά, σε πρόσβαση για την ασφάλεια. Αυτό θα έχει ως αποτέλεσμα σφάλμα χρόνου εκτέλεσης που μπορεί να ή δεν μπορεί να παρουσιαστούν κατά τη δημιουργία του στοιχείου ελέγχου. Επιστροφή S_FALSE από τη μέθοδο FinalConstruct() ενός στοιχείου ελέγχου ATL να προσομοιώσετε μια παράδειγμα αποτυγχάνουν κατά τέτοιο τρόπο κατά τη δημιουργία του στοιχείου ελέγχου. Αυτό προϋποθέτει LoadLibrary() ή CoCreateInstance() απέτυχε στο FinalConstruct(), και το προγραμματιστής επέλεξε να ελέγξετε για αυτό και να επιστρέψει S_FALSE. Σφάλμα που δημιουργήθηκε στην περίπτωση αυτή θα είναι παρόμοιο με το ακόλουθο:
σφάλμα '0115 του ASP'
Μη αναμενόμενο σφάλμα
/badguy.asp
Εμφανίστηκε ένα ανιχνεύσιμο σφάλμα σε ένα εξωτερικό αντικείμενο. Δεν είναι δυνατή η δέσμη ενεργειών
συνέχιση της λειτουργίας.
Σφάλμα διακομιστή αντικειμένου ' 0115 του ASP: 8000ffff'

Αποτυχία αυτού του τύπου θα δημιουργήσει ένα σφάλμα 800a01ad.

DLL δεν στη διαδρομή του συστήματος

Το σύστημα πρέπει να εντοπίσετε τις εξαρτώμενες dll (στατικά συνδεδεμένο) του DLL που υλοποιεί το αντικείμενο COM που δημιουργείται. Χρήση DUMPBIN ή Εξαρτάται, καθορίζουν τι είναι τα εξαρτημένα αρχεία DLL. Βεβαιωθείτε ότι όλες αυτές τις Αρχεία DLL βρίσκονται στον ίδιο κατάλογο με το COM DLL ή στη διαδρομή συστήματος.

DLL δεν είναι προσπελάσιμη από το σύστημα εξαιτίας της ρύθμισης ασφαλείας

Όταν ένας υπολογιστής-πελάτης ζητά μια σελίδα Active Server Pages (ASP) από ένα διακομιστή του Σελίδα ASP που εκτελείται σε περιβάλλον ασφαλείας συντηρούμενο στο μέθοδο ελέγχου ταυτότητας χρησιμοποιείται για την πρόσβαση στο διακομιστή Web. Για παράδειγμα, εκτέλεση ανώνυμες αιτήσεις σε το περιβάλλον IUSR_MACHINENAME όπου ΌΝΟΜΑ_ΜΗΧΑΝΉΜΑΤΟΣ είναι το όνομα σας υπολογιστής. Για πληροφορίες σχετικά με άλλες μεθόδους ελέγχου ταυτότητας και ασφάλειας θέματα, ανατρέξτε στην τεκμηρίωση των υπηρεσιών IIS. Αυτό σημαίνει σε όροι 800a01ad σφάλμα είναι ότι με έλεγχο ταυτότητας χρήστη πρέπει να έχουν πρόσβαση (μέσω NTFS αρχείου δικαιωμάτων) για το DLL COM και όλες οι εξαρτώμενες dll.

Μια προσέγγιση κατευθυντικά δεν μπορεί να χρησιμοποιηθεί για να εξακριβώσετε εάν αυτή είναι η αιτία του το πρόβλημα. Χρησιμοποιώντας την Εξερεύνηση των Windows, επιλέξτε Ιδιότητες για το DLL COM Επιλέξτε την καρτέλα Ασφάλεια και η χορήγηση "Όλοι" τουλάχιστον πρόσβαση ανάγνωσης του DLL. Κάντε το ίδιο για τα εξαρτημένα αρχεία dll και καταλόγους που περιέχουν το DLL. Αυτό θα πρέπει να εξαλείψετε τυχόν περιορισμούς ασφαλείας που ίσως επηρεάζουν η δημιουργία του αντικειμένου COM. Ασφάλεια μπορεί να αυξηθεί μετά το Προσδιορισμός αυτό ήταν το πρόβλημα. Να θυμάστε, πολλές από τις εξαρτώμενες DLL είναι σύστημα Windows dll και θα έχει τουλάχιστον "ανάγνωση everyone" πρόσβασης ήδη. Δεν κατά λάθος κατάργηση πρόσβαση όταν "σύσφιξη" το ασφάλεια.

(c) Microsoft Corporation 1998 κάθε νόμιμου δικαιώματος. Εισφορές Παπαοικονόμου Δημήτρης E. Γεωργίου, Microsoft Corporation.

Ιδιότητες

Αναγν. άρθρου: 194801 - Τελευταία αναθεώρηση: Παρασκευή, 27 Μαΐου 2011 - Αναθεώρηση: 4.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Internet Information Services 5.0
Λέξεις-κλειδιά: 
kberrmsg kbprb kbsecurity kbmt KB194801 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:194801

Αποστολή σχολίων