64 bit Windows 2008′de, Access veritabanı kullanan ASP dosyalarında aşağıdaki hatayı alıyor olabilirsiniz.
1 2 3 |
ADODB.Connection error '800a0e7a' Provider cannot be found. It may not be properly installed. /Default.asp, line 4 |
Bu hatayı veren kod parçası şu şekilde.
1 2 3 4 5 |
<span style="color: #000000; font-weight: bold;"><%</span> <span style="color: #990099; font-weight: bold;">Set</span> conn <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #990099; font-weight: bold;">Server</span>.<span style="color: #330066;">CreateObject</span><span style="color: #006600; font-weight:bold;">(</span><span style="color: #cc0000;">"ADODB.Connection"</span><span style="color: #006600; font-weight:bold;">)</span> dsn <span style="color: #006600; font-weight: bold;">=</span> <span style="color: #cc0000;">"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="</span> <span style="color: #006600; font-weight: bold;">&</span> <span style="color: #990099; font-weight: bold;">Server</span>.<span style="color: #330066;">MapPath</span><span style="color: #006600; font-weight:bold;">(</span><span style="color: #cc0000;">"programdb.mdb"</span><span style="color: #006600; font-weight:bold;">)</span> conn.<span style="color: #330066;">open</span> dsn <span style="color: #000000; font-weight: bold;">%></span> |
Bu hatanın nedeni IIS’in 64 bit çalışması fakat ODBC sürücülerinin bu uyumlulukta çalışmaması..
InetMgr.exe dosyasını çalıştırarak IIS Yöneticisi (IIS Manager) konsolunu açıyoruz ve aşağıdaki adımları yapıyoruz.
1- “Uygulama Havuzları” (Application Pools) linkine tıklıyoruz.
2- Orta bölümde listelenen havuzlardan ayarlarını değiştirmek istediğimizi seçiyoruz.
3- Sağ bölümde bulunan “Gelişmiş Ayarlar” (Advanced Settings) linkine tıklıyoruz.
4- Açılan pencerede “32-Bit Uygulamaları Etkinleştir” (Enable 32-Bit Applications) seçeneğini True yapıyoruz.
Artık uygulamamız 32 bit uyumlulukta çalışacak ve ODBC sürücüleri problem yaratmayacaktır.
Kaynak: alperdereli.com