BUG: "Referensi objek tidak diatur ke contoh sebuah objek" kesalahan terjadi saat Anda mencoba untuk mengakses data dengan menggunakan ADO Interop ASP.Halaman bersih

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 810098 - Melihat produk di mana artikel ini berlaku.
Perhatian ADO dan ADO MD tak sepenuhnya diuji di Microsoft.NET Framework lingkungan. Mereka dapat menyebabkan masalah berselang, terutama dalam aplikasi berbasis layanan atau aplikasi multithreaded. Teknik yang dibahas dalam artikel ini hanya boleh digunakan sebagai ukuran sementara selama migrasi ke ADO.NET. Anda hanya harus menggunakan teknik-teknik ini setelah Anda telah melakukan lengkap pengujian untuk memastikan bahwa ada tidak ada masalah kompatibilitas. Masalah yang disebabkan oleh menggunakan ADO atau ADO MD dengan cara ini tidak didukung. Untuk informasi lebih lanjut, lihat artikel berikut pada Basis Pengetahuan Microsoft:
840667 Anda menerima kesalahan tak terduga ketika menggunakan ADO dan ADO MD dalam.NET Framework aplikasi
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Pada komputer yang memiliki Microsoft.NET Framework 1.0 menginstal (dan yang tidak tidak memiliki Microsoft Visual Studio.NET diinstal), ketika Anda mencoba untuk mengakses data menggunakan ADO Interop di ASP.NET halaman yang berada di situs identik dan yang di-host di komputer yang sama, Anda akan menerima galat berikut pesan:
Pengecualian rincian: System.NullReferenceException: Objek tidak diatur ke contoh objek.

PEMECAHAN MASALAH

Untuk mengatasi masalah ini, mendaftar berkas Adodb.dll di perakitan global cache (GAC). Pada komputer di mana hanya.NET Framework adalah diinstal, file Gacutil.exe tidak ada. Baik mendapatkan berkas gacutil dengan menginstal Microsoft.NET Framework SDK, atau membuat Visual Studio.NET setup proyek yang menggunakan penginstal untuk menginstal komponen benar.

Pada mendaftar Adodb.dll dalam GAC, ikuti langkah berikut:
  1. Klik Mulai kemudian klikMenjalankan.
  2. Dalam Menjalankan kotak dialog, ketik berikut perintah, dan kemudian klik Oke:
    C:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\gacutil /i c: Interop Files\Microsoft.NET\Primary Assemblies\adodb.dll

STATUS

Microsoft telah mengkonfirmasi bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana didaftar pada awal artikel ini.

INFORMASI LEBIH LANJUT

Langkah-Langkah untuk Mereproduksi Perilaku

  1. Membuat Microsoft Visual C# proyek baru bernama ADORefError. Secara default, WebForm1.aspx muncul.
  2. Pada Project menu, klik Tambahkan Referensi.
  3. Pada .NET tab, pilih ADODB dari daftar drop-down.
  4. Klik Pilih, lalu klikOke.
  5. Tarik Label kontrol dari toolbox untuk WebForm1.aspx.
  6. Dalam Solusi Explorer, klik kananWebForm1.aspx, lalu klik Lihat Kode.
  7. Paste kode berikut di Page_Load acara:

    Catatan Anda harus mengubah Id pengguna <user name="">nilai untuk account yang memiliki izin yang sesuai untuk melakukan operasi ini pada database.</user>
    		//Create ADODB Objects
    		ADODB.Connection oConn = new ADODB.ConnectionClass();
    		ADODB.Recordset oRS = new ADODB.RecordsetClass();
    		
    		//Change Connection String depending on your SQL Server 
    		string strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=<username>;Initial Catalog=pubs;Data Source=Your SQLServer Name";
    			
    		oConn.Open(strConn,"","",0);
    		object objRecs = 100;
    		oRS = oConn.Execute("select au_Id, au_lname from authors", out objRecs,0);
    
    		//Error is generated by referencing the Fields collection
    		Label1.Text = oRS.Fields["au_id"].Value.ToString();
    
    		//Close all connections
    		oRS.Close();
    		oConn.Close();
    
    		//Release COM Objects
    		oRS = null;
    		oConn = null;
    
    
  8. Salinan Adodb.dll (dari c: Files\Microsoft.NET\Primary Interop Assemblies\ folder) ke Bin folder aplikasi ADORefError.
  9. Pada Bangun menu, klik Bangun Solusi.
  10. Mulai menjalankan Microsoft Internet Explorer, dan kemudian gulir ke WebForm1.aspx dengan menentukan URL berikut, di manaIISServerName adalah nama dari Microsoft Internet Information Services (IIS) server:
    http://IISServerName/ADORefError/WebForm1.aspx
  11. Mengidentifikasi komputer tes yang memiliki.NET Framework diinstal (tanpa Microsoft Visual Studio.NET). Dalam IIS, membuat dua virtual direktori dan nama mereka Test1 dan Uneltele Mele nelu57.
  12. Membuat dua identik situs: dari ADORefError folder, Salin WebForm1.aspx dan folder Bin untuk Test1 dan Uneltele Mele nelu57 folder di menguji komputer.
  13. Mulai menjalankan Microsoft Internet Explorer dan browse ke WebForm1.aspx Test1 situs dengan menentukan URL berikut, di manaIISServerName adalah nama dari Microsoft Internet Information Services (IIS) server:
    http://IISServerName/Test1/WebForm1.aspx
  14. Memulai sebuah instance dari Microsoft Internet Explorer dan Browse ke WebForm1.aspx Uneltele Mele nelu57 situs dengan menentukan URL berikut:
    http://IISServerName/Test2/WebForm1.aspx
  15. Ketika Anda mengakses WebForm1.aspx Uneltele Mele nelu57, Anda menerima pesan galat seperti yang diperincikan dalam bagian gejala.

REFERENSI

Untuk informasi lebih lanjut tentang mendaftar berkas .dll di GAC, kunjungi Web site Microsoft berikut:
.aspx http://msdn2.Microsoft.com/en-us/library/aa309379 (VS.71)

Properti

ID Artikel: 810098 - Kajian Terakhir: 03 Oktober 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft ADO.NET 2.0
  • Microsoft ActiveX Data Objects 2.7
  • Microsoft ADO.NET 1.1
Kata kunci: 
kbtshoot kberrmsg kbbug kbwebforms kbmt KB810098 KbMtid
Penerjemahan 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:810098

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com