29 Şubat 2012 Çarşamba

'800a01ad' ActiveX component can't create object 64 Bit Windows Çözümü

ActiveX Server Object bileşenlerini asp sayfalarından çağırırken "'800a01ad' ActiveX component can't create object" hatasıyla karşılaşıyorsanız aşağıdaki aşamaları kontrol etmenizi öneririm:

  • Eğere işletim sisteminiz 64 bit ise:

          IIS Ekranınızdan Uygulama Havuzlarına tıklayın. Buradan kullandığınız uygulama havuzuna (Genelde DefaultAppPool dur) sağ tıklayıp Gelişmiş Ayarlar menüsüne tıklayın. Karşınıza gelen ekrandan 32 Bit Uygulamaları Etkinleştir seçeneğini True yapıp ekranı kaydedin ve IIS'i yeniden başlatın.

  • Klasör Yetkilerini Ayarlama:

          ActiveX Server Object dll dosyanızın bulunduğu klasöre sağ tıklayıp Özellikler menüsüne tıklayın. Bu pencereden Güvenlik sekmesinden Düzenle butonuna tıklayın. Sonraki ekrandan Ekle butonuna basarak IIS_IUSR kullanıcısına Okuma ve Yürütme yetkilerini işaretleyerek ekranı kaydedip kapatınız.

  • Registry İzinlerini Ayarlama:

          Örneğin çağırmaya çalıştığımız kod satırı şu şekilde olsun:
Set Obj = Server.CreateObject("AspObjClass.AspObj")
Bu durumda Obje adımız olan AspObjClass.AspObj ismini kayıt defterinde F3 ile arıyoruz. Bulmamız gereken birinci anahtar HKEY_CLASSES_ROOT > AspObjClass.AspObj olmalı. Daha sonra bu anahtarın üzerine sağ tıklayıp İzinler seçeneğini seçip üstteki klasörde yaptığımız gibi IIS_IUSR kullanıcısına Okuma ve Yürütme yetkilerini işaretliyoruz. Tekrar F3 butonuna bastığımızda ikinci kez uzun bir GUID numarası bulması gerekiyor. Aynı izinleri bu GUID anahtarına da veriyoruz ve IIS'i yeniden başlatıyoruz.