ID Artikel: 194801 - Kajian Terakhir: 19 September 2011 - Revisi: 2.0

Active Server Pages kembali VBScript runtime error '800a01ad'

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

GEJALA

Penggunaan CreateObject untuk membuat COM komponen dalam halaman Active Server Pages (ASP) dapat mengakibatkan galat berikut:
Microsoft VBScript runtime error '800a01ad'
Komponen ActiveX tidak dapat membuat objek
Ini biasanya galat karena dynamic-link libraries (dll) yang tergantung objek COM adalah salah satu dari berikut ini:
  • Hilang dari sistem
  • Tidak di lintasan sistem
  • Tidak dapat diakses oleh sistem karena pengaturan keamanan

INFORMASI LEBIH LANJUT

Masing-masing alasan di atas berlaku untuk DLL yang menerapkan objek COM sebagai salah satu dependensi dll. Misalnya, jika COM DLL statis link Win32 DLL dan Win32 DLL hilang dari sistem, kesalahan 800a01ad dihasilkan.

Ada banyak cara untuk menentukan DLL dependensi. Di antaranya adalah Alat depends.exe, yang dikirim dengan Platform Software Development Kit (SDK) dan pengembang Studio 98, dan utilitas DUMPBIN, yang diinstal dengan Visual C++.

Berkas berikut ini tersedia untuk di-download dari Microsoft Pusat Download:

Perkecil gambar iniPerbesar gambar ini
Unduh
Download paket Dependsia64version2.1.3623.exe sekarang. (http://download.microsoft.com/download/visualfoxpro7/Utility/2.1/W9X2KMeXP/EN-US/Dependsia64version2.1.3623.exe)
Perkecil gambar iniPerbesar gambar ini
Unduh
Download paket Dependsx86version2.1.3623.exe sekarang. (http://download.microsoft.com/download/visualfoxpro7/Utility/2.1.3623/W9X2KMeXP/EN-US/Dependsx86version2.1.3623.exe)

Release Date: Juni 25,2002

Untuk informasi lebih lanjut tentang cara men-download berkas Dukungan Microsoft, klik nomor artikel di bawah ini untuk melihat artikel pada Basis Pengetahuan Microsoft:
119591  (http://support.microsoft.com/kb/119591/ ) Cara mendapatkan berkas Dukungan Microsoft dari Layanan Online
Microsoft telah memindai berkas ini dari virus. Microsoft menggunakan perangkat lunak pendeteksi virus terbaru yang tersedia pada tanggal saat berkas dikirimkan. Berkas tersebut disimpan di server yang aman, yang membantu mencegah pengubahan yang tidak sah terhadap berkas. Untuk informasi lebih lanjut tentang alat ini, kunjungi Website Walker ketergantungan berikut ini:
http://www.dependencywalker.com (http://www.dependencywalker.com)
Microsoft menyediakan informasi kontak pihak ketiga untuk membantu Anda menemukan dukungan teknis. Informasi kontak ini dapat berubah tanpa pemberitahuan. Microsoft tidak menjamin ketepatan dari informasi kontak pihak ketiga ini.

Untuk menggunakan Depends, hanya menjalankan alat dan membuka DLL yang bersangkutan. Menggunakan DUMPBIN untuk melihat dependensi, jalankan berikut ini pada prompt perintah "dumpbin /IMPORTS <name of="" dll="">". Utilitas Depends memiliki keuntungan dari menampilkan dependensi dependensi. Itu akan muncul bahwa pandangan cepat di Windows Explorer akan menampilkan informasi yang sama, tetapi telah diamati bahwa informasi yang ditampilkan tidak selalu lengkap. </name>

Informasi lebih lanjut tentang masing-masing yang mungkin menyebabkan berikut:

Dll yang hilang dari sistem

DLL yang menerapkan objek COM harus ada pada sistem dan menjadi terdaftar dengan jalan yang benar. Penciptaan kegagalan dari sebuah objek COM yang tidak terdaftar sama sekali benar-benar akan menghasilkan kesalahan yang berbeda:
Kesalahan objek server ' ASP 0177: 800401f3'

Untuk memverifikasi bahwa jalan di registri benar, menjalankan RegEdit program dan mencari PROGID (ditemukan dalam panggilan CreateObject). Dari PROGID Catatan, merekam atau kopi CLSID ke Clipboard dan menemukan entri untuk CLSID. Catatan ini harus berisi kunci InprocServer32 dengan jalan menuju DLL. Berikut menggambarkan aliran proses ini:
   (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
				

Perintah berikut dari prompt perintah akan memverifikasi keberadaan file ini:
   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
				

Jika tidak ada jalan ditetapkan dalam registri untuk DLL, DLL harus ada dalam sistem jalan.

COM DLL mungkin memiliki dependensi selain dll Win32 yang statis terkait (DUMPBIN dan Depends.exe menunjukkan dll statis terkait). Misalnya, objek COM dapat menelepon LoadLibrary() dan memanggil fungsi dalam Win32 DLL. Demikian pula, kontrol mungkin membuat objek COM yang terdapat di dalam memisahkan dll. Salah satu dll ini mungkin hilang, tidak terdaftar di tidak dapat diakses karena keamanan. Hal ini akan mengakibatkan kesalahan runtime yang mungkin atau mungkin tidak ditemukan selama penciptaan kontrol. Kembali S_FALSE dari metode FinalConstruct() ATL kontrol dapat mensimulasikan contoh dari kontrol gagal sedemikian rupa selama penciptaan. Ini mengasumsikan LoadLibrary() atau CoCreateInstance() yang gagal dalam FinalConstruct(), dan programmer memilih untuk memeriksa ini dan kembali S_FALSE. Kesalahan yang dihasilkan dalam kasus ini akan mirip dengan berikut ini:
galat 'ASP 0115'
Galat tak terduga
/badguy.asp
Terjadi kesalahan trappable dalam objek eksternal. Script tidak
terus berjalan.
Kesalahan objek server ' ASP 0115: 8000ffff'

Kegagalan jenis ini tidak akan menghasilkan kesalahan 800a01ad.

Dll tidak di lintasan sistem

Sistem harus mampu menemukan tergantung dll (statis link) DLL yang menerapkan objek COM yang sedang dibuat. Menggunakan DUMPBIN atau Tergantung, menentukan apakah dll tergantung. Memverifikasi bahwa semua ini Dll yang baik dalam direktori yang sama sebagai COM DLL atau di lintasan sistem.

Dll tidak dapat diakses oleh sistem karena pengaturan keamanan

Ketika seorang klien meminta halaman Active Server Pages (ASP) dari server, Halaman ASP berjalan dalam konteks keamanan tergantung pada metode otentikasi digunakan untuk mengakses Web Server. Misalnya, permintaan anonim menjalankan konteks IUSR_MACHINENAME di mana MACHINENAME adalah nama Anda komputer. Untuk informasi tentang metode otentikasi dan keamanan lainnya pertimbangan, silakan berkonsultasi dokumentasi IIS. Apa artinya ini dalam istilah 800a01ad kesalahan adalah bahwa otentikasi pengguna harus memiliki akses (melalui NTFS file permissions) COM DLL dan semua tergantung dll.

Pendekatan senapan yang dapat digunakan untuk menentukan apakah ini merupakan penyebab masalah. Menggunakan Windows Explorer, pilih properti untuk COM DLL, Pilih Security tab, dan hibah "setiap orang" setidaknya membaca akses ke DLL. melakukan hal yang sama untuk tergantung dll dan direktori yang berisi Dll. Ini harus menghilangkan pembatasan keamanan yang dapat mempengaruhi penciptaan objek COM. Keamanan dapat mengencangkan setelah ditentukan bahwa ini adalah masalah. Perlu diingat, banyak tergantung Dll sistem Windows dll dan akan memiliki setidaknya "semua orang yang membaca" akses sudah. Tidak keliru menghapus akses ini ketika "mengencangkan" keamanan.

(c) Microsoft Corporation 1998, All Rights Reserved. Kontribusi oleh Robert E. Duke, Microsoft Corporation.


Berlaku bagi:
  • Microsoft Internet Information Services 5.0
Kata kunci: 
kberrmsg kbprb kbsecurity kbmt KB194801 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:194801  (http://support.microsoft.com/kb/194801/en-us/ )