Makale numarası: 316675 - Son Gözden Geçirme: 13 Mayıs 2007 Pazar - Gözden geçirme: 6.5

Bir ASP.NET alt işlemi ' bir Access veritabanına bağlanmaya çalıştığınızda işlenmeyen bir özel durumu oluşabilir

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 makalede, aşağıdaki Microsoft .NET Framework Sınıf Kitaplığı ad alanına başvurulmaktadır:
  • System.Data.OLEDB

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Işlenmeyen bir özel durum aşağıdaki koşullarda oluşabilir:
  • ASP.NET çalışan işleminin (Aspnet_wp.exe) varsayılan ASPNET hesabı altında çalışır.
    -ve-
  • Bu uygulamasında kimliğe bürünme özelliğini etkinleştirmeyin.

    -ve-
  • Bağlanmak için Access yazma deneyin veya veritabanı.
Bu koşullar altında aşağıdaki özel durumlar birini alabilirsiniz:
Microsoft Jet Veritabanı Altyapısı 'C:\Nwind.mdb' dosyasını açamıyor. Dosya bir başka kullanıcı tarafından özel kullanımda açılmış veya verileri görebilmeniz için yetkiniz yok.
İşlem, güncelleştirilebilir sorgu kullanmalıdır.

Neden

Güvenlik sorunları nedeniyle, ASP.NET alt işlemi varsayılan ASPNET hesabı altında çalışır. Bir uygulama için kimliğe bürünme etkinleştirmezseniz, tüm istekleri söz konusu uygulamanın çalışan iş parçacıklarının işlem hesabı altında çalıştırın.

Bu sorun nedeniyle oluşur. ASPNET hesabı bağlanmak veya bir Access veritabanına yazmak için yeterli izinlere sahip değil.

Çözüm

Bu soruna geçici bir çözüm için aşağıdaki yöntemlerden birini kullanın:
  • ASP.NET alt işlemi Machine.config <processmodel>bölümünde SISTEM hesabı altında çalışacak biçimde yapılandırma dosyası.
  • Güvenlik nedenlerinden ötürü Microsoft, kimliğe bürünme ASP.NET uygulamanızı etkinleştirmenizi önerir. Kimliğine bürünülen kullanıcı, bilgisayar ve erişiyorsanız, veritabanı için gerekli izinlere sahipse, bu yöntem çalışır.
  • GRANT, okuma ve yazma izinleri "Everyone" grubunun veritabanı ve veritabanı klasörünün. Bu yöntemi güvenli değildir; bu nedenle, bu yöntem Microsoft önermez.

Durum

Bu davranış tasarım yüzündendir.

Daha fazla bilgi

Sınırsız kullanıcı, tam zamanlı desteği ve ACID hareketler gerektiğinde, Microsoft, Microsoft SQL Server, Microsoft ınternet ınformation Services (IIS) ile kullanmanızı önerir. IIS, Microsoft Active Server Pages (ASP), herhangi bir OLE DB uyumlu veya ODBC uyumlu veritabanı ile birlikte çalışmasına rağmen kapsamlı olarak sınanmıştır. IIS, sınırsız kullanıcılar, bir ınternet senaryoda ortaya çıkabilir ve Microsoft SQL Server'da yüksek bir işlem akışı ile çalışmak üzere tasarlanmıştır.

Not "ACıD" ise hareket işleme sistemlerinde dört özelliklerini kısaltmasıdır: atom oranı, tutarlılık, yalıtım, dayanıklılığı.

ASP, geçerli veri kaynağı olarak Microsoft Jet veritabanı altyapısı kullanılmasını destekler. Ancak, Microsoft ODBC sürücüsü için Access ve Jet için Microsoft OLE DB Provider değil amacı ile yüksek stres yüksek eşzamanlılık, tam zamanlı bir sunucu uygulamaları (örneğin, Web uygulamalarını, ticaret uygulamaları, hareketsel uygulamalar, iletileşme sunucuları vb.) kullanmak için.

Davranışı Yeniden Oluşturma Adımları

  1. Microsoft Visual C# .NET ile yeni bir ASP.NET Web uygulaması proje yarat
  2. Kendi Web kod penceresine üstünde görüntülenen form, <a1>"Bildirisi"</a1> bölümüne aşağıdaki kodu ekleyin:
    using System.Data.OleDb;					
  3. Page_Load olayı için aşağıdaki kodu ekleyin:
        String myConn  ="Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\\Nwind.mdb;";
        String myQuery  = "Insert into Customers(CustomerID,CompanyName) Values ('aaaaa', 'aaaaa')";
    
        OleDbConnection cn = new OleDbConnection(myConn);
        cn.Open();
        OleDbCommand cmd = new OleDbCommand(myQuery, cn);
        cmd.ExecuteNonQuery();
        cn.close();
    					
  4. Bağlantı dizesi ortamınıza uygun olarak değiştirin.
  5. Projeyi derleyin.
  6. WebForm1.aspx tarayıcınızda görüntüleyin. Yukarıda belirtilen özel birini aldığınız dikkat edin.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
306590  (http://support.microsoft.com/kb/306590/ ) ASP.NET güvenliğine genel bakış
307626  (http://support.microsoft.com/kb/307626/ ) ASP.NET yapılandırmasına genel bakış
<processmodel>Hakkında daha fazla bilgi için bölümünde, aşağıdaki Microsoft Developer Network (MSDN) ziyaret Web sitesi:
<a1><processmodel></a1> Bölümü
http://msdn2.microsoft.com/en-us/library/7w2sway1(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/7w2sway1(vs.71).aspx)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ADO.NET 2.0
  • Microsoft ADO.NET 1.0
  • Microsoft ASP.NET 1.0
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Office FrontPage 2003
Anahtar Kelimeler: 
kbmt kbtshoot kberrmsg kbnofix kbprb kbsystemdata KB316675 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:316675  (http://support.microsoft.com/kb/316675/en-us/ )