Makale numarası: 194801 - Son Gözden Geçirme: 08 Temmuz 2005 Cuma - Gözden geçirme: 6.4

VBScript çalışma zamanı hatası '800a01ad' Active Server Sayfaları verir

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Bir Active Server Pages (ASP) sayfasında bir COM bileşeni oluşturmak için CreateObject kullanımını şu hatayla sonuçlanabilir:
Microsoft VBScript çalışma zamanı hatası '800a01ad'
ActiveX bileşeni nesneyi oluşturamıyor
Dinamik bağlantı kitaplıkları (DLL) COM nesnesinin bağımlı olduğu aşağıdakilerden biri olması nedeniyle bu hata genellikle oluşturulur:
  • Sistemden eksik
  • Sistem yolunda değil
  • Sistem güvenlik ayarları nedeniyle erişilemiyor

Daha fazla bilgi

Yukarıdaki nedenlerden dolayı her COM nesnesi yan? s?ra dll bağımlılıklar birini uygulayan DLL için geçerlidir. Örneğin, bir COM DLL için statik olarak bağlanan bir Win32 DLL ve Win32 DLL eksik sistemden, 800a01ad bir hata oluşturulur.

DLL bağımlılığı belirlemek için birçok yol vardır. Bunlar arasında Platform Software Development Kit'e (SDK) ve Developer Studio 98 ile birlikte gelen, Depends.exe aracını ve Visual C++ ile yüklenen DUMPBIN yardımcı programı var.

Aşağıdaki dosyalar Microsoft Yükleme Merkezi'nden yüklenebilir:

Bu resmi kapatBu resmi aç
Download
Download the Dependsia64version2.1.3623.exe package now. (http://download.microsoft.com/download/visualfoxpro7/utility/2.1/w9x2kmexp/en-us/dependsia64version2.1.3623.exe)
Bu resmi kapatBu resmi aç
Download
Download the Dependsx86version2.1.3623.exe package now. (http://download.microsoft.com/download/visualfoxpro7/utility/2.1.3623/w9x2kmexp/en-us/dependsx86version2.1.3623.exe)

Yayım Tarihi: Haziran 25,2002

Microsoft destek dosyalarını karşıdan yükleme konusunda ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
119591  (http://support.microsoft.com/kb/119591/ ) Microsoft Destek Dosyaları Çevrimiçi Hizmetler'den Nasıl Alınır
Microsoft bu dosyada virüs taraması yapmıştır. Microsoft, dosyanın kullanıma sunulduğu tarihteki en güncel virüs tarama yazılımını kullanmıştır. Dosya, üzerinde herhangi bir yetkisiz değişiklik yapılmasını engellemeye yardım eden geliştirilmiş güvenliğe sahip sunucularda depolanır. Bu araç hakkında daha fazla bilgi için aşağıdaki bağımlılık Walker Web sitesini ziyaret edin:
http://www.dependencywalker.com (http://www.dependencywalker.com)
Microsoft, teknik destek bulmanıza yardımcı olmak üzere üçüncü taraf iletişim bilgilerini sağlamaktadır. Bu bilgiler haber verilmeden değişebilir. Microsoft bu üçüncü taraf iletişim bilgilerinin doğruluğunu garanti etmez.

Depends kullanmak için Aracı'nı çalıştırın ve söz konusu DLL'i açın. Bağımlılıkları görüntülemek için DUMPBIN kullanmak için komut isteminde "dumpbin /IMPORTS < DLL adını >" aşağıdaki çalıştırın. Depends yardımcı programı, bağımlılıklar bağımlılıklarını görüntüleme avantajı vardır. Windows Gezgini'nde, Hızlı Görünüm aynı bilgileri görüntüler, ancak görüntülenen bilgiler her zaman tam olmadığını gözlenmiştir görünür.

Olası hakkında daha fazla bilgi şu şekilde olur:

Sistemden eksik dll

COM nesnesi uygulayan DLL sistemde var olmalıdır ve doğru yolu ile kayıtlı olması. Tüm kayıtlı olmayan bir COM nesnesinin oluşturma hatası, aslında farklı bir hata oluşturur:
Sunucu nesnesi hatası ' ASP 0177: 800401f3 '

Kayıt defterindeki yolun doğru olduğunu doğrulamak için regedit'i program ve arama (CreateObject çağrıda bulunur) PROGıD'nı çalıştırın. PROGID girdisinden kaydetmek veya CLSID panoya kopyalayın ve giriş için clsıd DEĞERINI bulun. Bu girdi bir ınprocserver32 anahtarla bir DLL'NIN yolunu içermelidir. Bu işlem akışı gösterilmiştir:
   (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
				

Aşağıdaki komutları bir komut isteminden çalıştırın, bu dosyanın var olup olmadığını doğrular:
   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 için kayıt defterinde belirtilen yol yok, sistem yolunda bulunması gerekir.

Bir COM DLL bağımlılıklar (DLL'ler statik olarak bağlanan statik olarak bağlı DUMPBIN ve Depends.exe Göster) olan bir Win32 DLL'den farklı olabilir. Örneğin, bir COM nesnesi LoadLibrary() arayın ve arama işlevleri bir Win32 DLL. Benzer şekilde, denetimin ayrı DLL içinde bulunan COM nesneleri oluşturabilir. Bu DLL biri yanlış üzerinde kayıtlı, kaybolabilir güvenlik yüzünden erişilemez. Bu denetim oluşturulurken karşılaşılan veya çalışma zamanı hatası neden. ATL denetiminin FinalConstruct() yönteminden S_FALSE döndüren örnek oluşturma sırasında bu tür bir biçimde başarısız denetimin benzetimini yapabilirsiniz. Bu LoadLibrary() veya CoCreateInstance() FinalConstruct() içinde başarısız oldu varsayılır ve bu denetleyin ve S_FALSE Programcı seçti. Bu durumda oluşturulan hata aşağıdakine benzer olacaktır:
Hata: 'ASP 0115'
Beklenmeyen hata
/badguy.asp
Yakalanabilir bir hata, bir dış nesnede oluştu. Komut dosyası olamaz.
çalıştırmaya devam et.
Sunucu nesnesi hatası ' ASP 0115: 8000ffff '

Bu tür hata 800a01ad hata oluşturur.

Sistem yolunu değil, dll

Sistem bağımlı dll (statik olarak bağlı) COM nesnesinin oluşturulmasını uygulayan DLL bulmak olması gerekir. Bağımlı DLL'lerin nelerdir DUMPBIN veya Depends kullanarak belirleyin. Bu DLL tüm COM DLL ile aynı dizinde veya sistem yolunda olduğundan emin olun.

Güvenlik ayarları nedeniyle sistem tarafından değil erişilebilir dll

Bir istemci, sunucudan bir Active Server Pages (ASP) sayfası istediğinde, ASP sayfasını, bir güvenlik bağlamı bağımlı Web sunucusuna erişmek için kullanılan kimlik doğrulama yöntemi üzerinde çalışır. Örneğin, anonim isteklere, BILGISAYARADı, bilgisayarınızın adı olduğu yerdeki ıusr_machınename bağlamında çalışır. Diğer kimlik doğrulama yöntemleri ve güvenlik konuları hakkında daha fazla bilgi için lütfen IIS belgelerine başvurun. 800A01ad hata açısından anlamını bu olan kimliği doğrulanmış kullanıcının COM DLL'i ve tüm bağımlı dll (NTFS dosya izinlerini) yoluyla erişimi olmalıdır.

Shotgun bir yaklaşım, bu sorunun nedeni olup olmadığını belirlemek için kullanılabilir. Seçin, Windows Gezgini'ni kullanarak güvenlik sekmesi, COM DLL için Özellikler'i seçin ve verme "everyone" en az erişim için DLL DOSYASıNı okuyun. Aynı durum bağımlı dll ve DLL'lerin içeren dizinler için yapın. Bu COM nesnesinin oluşturulmasını etkileyen tüm güvenlik kısıtlamaları ortadan kaldırmak. Bu sorunu olduğunu belirlenir sonra güvenlik tightened. Unutmayın, bağımlı dll dosyalarının çoğunu Windows Sistem DLL'leri ve "everyone okunamıyor" en az olacak zaten erişebilirsiniz. Yanlışlıkla bu erişimi "güvenlik sıkılaştırma," kaldırmayın.

(c) Microsoft Corporation 1998, tüm hakları saklıdır. Tarafından katkıyı Robert D. Duke, Microsoft Corporation.


Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Internet Information Server 4.0
  • Microsoft Internet Information Services 5.0
Anahtar Kelimeler: 
kbmt kberrmsg kbprb kbsecurity KB194801 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:194801  (http://support.microsoft.com/kb/194801/en-us/ )