6.2.2019
5.00 / 1 oy

Current Database Schema is Not Compatible With This Version Hatası Çözümü

ASP.NET’in kendi içerisindeki kullanıcı yönetimi mimarisini kullanarak Membership, Roles, Profiles gibi önceden hazırlanmış tabloları, view’leri ve stored procedure’ları kullanabilirsiniz. Bu sayede hem database tarafında hem de framework tarafında binlerce satır kod yazmaktan kurtulmış olacağınız gibi kodların tekrar kullanılabilirliği sayesinde kendinize boilerplate kod şabllonları da yaratabilirsiniz.

asp.net error screen

 

Bu giriş açıklamasını yazmam gerekiyordu çünkü The 'System.Web.Security.SqlMembershipProvider' requires a database schema compatible with schema version '1'.  However, the current database schema is not compatible with this version.  You may need to either install a compatible schema with aspnet_regsql.exe (available in the framework installation directory), or upgrade the provider to a newer version. hatası da bu kullanıcı yönetimi sisteminin klonlanmasından kaynaklanmaktadır ve veritabanı schema’sının eksik ya da hatalı olduğunu gösteriyordur.

sql server tasks generate scripts

Stack trace bilgilerine bakarak da aynı mesaj görüntülenebilir. Çözümü oldukça kolay olmakla birlikte kısa ve uzun çözüm yolları şu şekildedir:

 

The 'System.Web.Security.SqlMembershipProvider' requires a database schema compatible with schema version '1' Hatası Çözümü

asp.net membership databse tables

Uzun Çözüm

aspnet_regsql.exe dosyası tekrar çalıştırılarak SqlMembershipProvider tabloları, view’leri ve saklı yordamları sıfırdan kurulabilir. aspnet_regsql.exe dosyasına şu yoldan erişilebilir:

C:\Windows\Microsoft.NET\Framework[framework sürümü]\aspnet_regsql

aspnet_regsql setup wizard

Aspnet_regsql.exe dosyası çalıştırıldığında veritabanı erişim (sunucu ip adresi, kullanıcı adı, parola ve veritabanı adı) bilgilerini isteyecektir. Bu bilgileri girmeden önce bu veritabanında daha önce başka bir SqlMembershipProvider kurulmadığına emin olunmasında fayda var. Tercihen yeni ve temiz bir database açılarak bu işlemin sıfırdan yapılması daha sağlıklı olacaktır.

 

Kolay Çözüm

Hata, Asp.net üyelik sistemi başka bir veritabanından Tasks-> Generate Scripts işlemi yapılarak kopyalandığında aspnet_SchemaVersions tablosunun boş olmasından kaynaklanmaktadır.

Çözüm olarak SchemaVersions tablosuna ilgili değerleri kayıtları gerekmektedir:

INSERT INTO dbo.aspnet_SchemaVersions
VALUES
('common', 1, 1),
('health monitoring', 1, 1),
('membership', 1, 1),
('personalization', 1, 1),
('profile', 1, 1),          
('role manager', 1, 1);
GO

Kayıtlar eklendikten sonra proje rebuild edildiğinde hatanın giderilmiş olduğu görülecektir.

asp.net SchemaVersions table

Current Database Schema is Not Compatible With This Version Hatası Çözümü
Bu makalenin telif hakkı ve tüm sorumlulukları yazara ait olup, şikayetler için lütfen bizimle iletişime geçiniz.
URL:
Etiketler:

Bu makale 55 kez okundu

6.2.2019 tarihinde yazıldı
Reitix

Yorumlar

  • Bu makaleye henüz hiç yorum yazılmamış. İlk yorumu yazan siz olabilirsiniz.

Bu yazıya siz de yorum yapabilirsiniz