Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
tarafından Tom Dykstra
Bu öğretici serisi, Visual Studio 2012 RC veya Web için Visual Studio Express 2012 RC kullanarak SQL Server Compact veritabanı içeren bir ASP.NET web uygulaması projesi dağıtmayı (yayımlamayı) gösterir. Web Yayımlama Güncelleştirmesi'ni yüklerseniz Visual Studio 2010'u da kullanabilirsiniz. Seriye giriş için serideki ilk öğreticiye bakın.
Visual Studio 2012'nin RC sürümünden sonra sunulan dağıtım özelliklerini gösteren, SQL Server Compact dışındaki SQL Server sürümleri dağıtmayı ve Windows Azure Web Sitelerine dağıtmayı gösteren bir öğretici için bkz. Visual Studio kullanarak web dağıtımı ASP.NET.
Genel Bakış
Bu öğreticide, tam bir SQL Server veritabanına veritabanı güncelleştirmesinin nasıl dağıtılacağı gösterilmektedir. veritabanını güncelleştirmenin tüm işlerini Code First Migrations olduğundan, bu işlem Veritabanı Güncelleştirmesi Dağıtma öğreticisindeki SQL Server Compact için yaptığınız işlemle neredeyse aynıdır.
Anımsatıcı: Öğreticide ilerlerken bir hata iletisi alırsanız veya bir şey çalışmıyorsa sorun giderme sayfasını kontrol edin.
Tabloya Yeni Sütun Ekleme
Öğreticinin bu bölümünde bir veritabanı değişikliği ve buna karşılık gelen kod değişiklikleri yapacak, ardından bunları test ve üretim ortamlarına dağıtma hazırlığında Visual Studio'da test edin. Değişiklik, varlığa bir OfficeHours
sütun Instructor
eklemeyi ve yeni bilgilerin Eğitmenler web sayfasında görüntülenmesini içerir.
ContosoUniversity.DAL projesinde Instructor.cs açın ve ve Courses
özellikleri arasına HireDate
aşağıdaki özelliği ekleyin:
[MaxLength(50)]
public string OfficeHours { get; set; }
Başlatıcı sınıfını yeni sütunu test verileriyle gösterecek şekilde güncelleştirin.
Migrations\Configuration.cs dosyasını açın ve yeni sütunu içeren aşağıdaki kod bloğuyla başlayan var instructors = new List<Instructor>
kod bloğunu değiştirin:
var instructors = new List<Instructor>
{
new Instructor { FirstMidName = "Kim", LastName = "Abercrombie", HireDate = DateTime.Parse("1995-03-11"), BirthDate = DateTime.Parse("1918-08-12"), OfficeHours = "8-9AM, 4-5PM", OfficeAssignment = new OfficeAssignment { Location = "Smith 17" } },
new Instructor { FirstMidName = "Fadi", LastName = "Fakhouri", HireDate = DateTime.Parse("2002-07-06"), BirthDate = DateTime.Parse("1960-03-15"), OfficeAssignment = new OfficeAssignment { Location = "Gowan 27" } },
new Instructor { FirstMidName = "Roger", LastName = "Harui", HireDate = DateTime.Parse("1998-07-01"), BirthDate = DateTime.Parse("1970-01-11"), OfficeHours = "6AM-6PM", OfficeAssignment = new OfficeAssignment { Location = "Thompson 304" } },
new Instructor { FirstMidName = "Candace", LastName = "Kapoor", HireDate = DateTime.Parse("2001-01-15"), BirthDate = DateTime.Parse("1975-04-11") },
new Instructor { FirstMidName = "Roger", LastName = "Zheng", HireDate = DateTime.Parse("2004-02-12"), BirthDate = DateTime.Parse("1957-10-12"), OfficeHours = "By appointment only" }
};
ContosoUniversity projesinde Instructors.aspx açın ve ilk GridView
denetimdeki kapanış </Columns>
etiketinden hemen önce ofis saatleri için yeni bir şablon alanı ekleyin:
<asp:TemplateField HeaderText="Office Hours">
<ItemTemplate>
<asp:Label ID="InstructorOfficeHoursLabel" runat="server" Text='<%# Eval("OfficeHours") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="InstructorOfficeHoursTextBox" runat="server" Text='<%# Bind("OfficeHours") %>'
Width="14em"></asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
Çözümü derleyin.
Paket Yöneticisi Konsolu penceresini açın ve Varsayılan proje olarak ContosoUniversity.DAL öğesini seçin.
Aşağıdaki komutları girin:
add-migration AddOfficeHoursColumn
update-database
Uygulamayı çalıştırın ve Eğitmenler sayfasını seçin. Entity Framework veritabanını yeniden oluşturduğundan ve test verileriyle tohumladığı için sayfanın yüklenmesi normalden biraz daha uzun sürer.
Veritabanı Güncelleştirmesini Test Ortamına Dağıtma
Code First Migrations kullandığınızda, veritabanı değişikliğini SQL Server dağıtma yöntemi SQL Server Compact ile aynıdır. Ancak, test yayımlama profilini değiştirmeniz gerekir çünkü hala SQL Server Compact'den SQL Server geçiş için ayarlanmıştır.
İlk adım, önceki öğreticide oluşturduğunuz bağlantı dizesi dönüşümlerini kaldırmaktır. SQL Server'a geçiş için SQL'i Paketle/Yayımla sekmesini yapılandırmadan önce yaptığınız gibi yayımlama profilinde bağlantı dizesi dönüştürmeleri belirteceğiniz için bunlar artık gerekli değildir.
Web.Test.config dosyasını açın ve öğesini kaldırınconnectionStrings
.
Web.Test.config dosyasında kalan tek dönüştürme öğesindeki appSettings
değer içindirEnvironment
.
Artık yayımlama profilini güncelleştirebilir ve test ortamında yayımlayabilirsiniz.
Web'i Yayımla sihirbazını açın ve profil sekmesine geçin.
Yayımlama profilini test et'i seçin.
Ayarlar sekmesini seçin.
Yeni veritabanı yayımlama geliştirmelerini etkinleştir'e tıklayın.
SchoolContext'in bağlantı dizesi kutusuna, önceki öğreticide Web.Test.config dönüştürme dosyasında kullandığınız değeri girin:
Data Source=.\SQLExpress;Initial Catalog=School-Test;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True
Code First Migrations Yürüt(uygulama başlangıcında çalışır) öğesini seçin. (Visual Studio sürümünüzde onay kutusu Code First Migrations Uygula olarak etiketlenebilir.)
DefaultConnection bağlantı dizesi kutusuna, önceki öğreticide Web.Test.config dönüştürme dosyasında kullandığınız değeri girin:
Data Source=.\SQLExpress;Initial Catalog=aspnet-Test;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True
Veritabanını güncelleştir'i temiz bırakın.
Yayımla’ya tıklayın.
Visual Studio, kod değişikliklerini test ortamına dağıtır ve tarayıcıyı Contoso Üniversitesi giriş sayfasına açar.
Eğitmenler sayfasını seçin.
Uygulama bu sayfayı çalıştırdığında veritabanına erişmeye çalışır. Code First Migrations veritabanının güncel olup olmadığını denetler ve en son geçişin henüz uygulanmadığını bulur. Code First Migrations en son geçişi uygular, yöntemini çalıştırır Seed
ve ardından sayfa normal şekilde çalışır. Yeni Office Saatleri sütununu ve dağıtılmış verileri görürsünüz.
Veritabanı Güncelleştirmesini Üretim Ortamına Dağıtma
Üretim ortamı için yayımlama profilini de değiştirmeniz gerekir. Bu durumda, güncelleştirilmiş bir .publishsettings dosyasını içeri aktararak mevcut profili kaldırır ve yeni bir profil oluşturursunuz. Güncelleştirilmiş dosya Cytanium'daki SQL Server veritabanının bağlantı dizesi içerir.
Test ortamına dağıttığınızda gördüğünüz gibi artıkWeb.Production.configdönüştürme dosyasında dönüşümler bağlantı dizesi gerek yoktur. Bu dosyayı açın ve öğesini kaldırın connectionStrings
. Kalan dönüştürmeler Environment
öğesindeki appSettings
değere ve location
Elmah hata raporlarına erişimi kısıtlayan öğeye yöneliktir.
Üretim için yeni bir yayımlama profili oluşturmadan önce, daha önce Üretim Ortamına Dağıtma öğreticisinde yaptığınız gibi güncelleştirilmiş bir .publishsettings dosyasını indirin. (Cytanium denetim masasında Web Siteleri'ne ve ardından contosouniversity.com web sitesine tıklayın. Web Yayımlama sekmesini seçin ve bu web sitesi için Yayımlama Profilini İndir'e tıklayın.) Bunu yapmanızın nedeni, .publishsettings dosyasındaki veritabanı bağlantı dizesi almaktır. dosyayı ilk kez indirdiğinizde bağlantı dizesi kullanılamıyordu çünkü hala SQL Server Compact kullanıyordunuz ve Cytanium'da SQL Server veritabanını henüz oluşturmamıştınız.
Artık yayımlama profilini güncelleştirebilir ve üretim ortamında yayımlayabilirsiniz.
Web'i Yayımla sihirbazını açın ve profil sekmesine geçin.
Profilleri Yönet'e tıklayın ve üretim profilini silin.
Bu değişikliği kaydetmek için Web'i Yayımla sihirbazını kapatın.
Web'i Yayımla sihirbazını yeniden açın ve İçeri Aktar'a tıklayın.
Bağlantı sekmesinde, geçici bir URL kullanıyorsanız Hedef URL'yi uygun değerle değiştirin.
İleri’ye tıklayın.
Ayarlar sekmesinde, yeni veritabanı yayımlama geliştirmelerini etkinleştir'e tıklayın.
SchoolContext için bağlantı dizesi açılan listesinde Cytanium bağlantı dizesi seçin.
Kod Yürüt İlk geçişleri (uygulama başlangıcında çalıştırılır) seçin.
DefaultConnection için bağlantı dizesi açılan listesinde Cytanium bağlantı dizesi seçin.
Profil sekmesini seçin, Profilleri Yönet'e tıklayın ve profili "contosouniversity.com - Web Dağıtımı" yerine "Üretim" olarak yeniden adlandırın.
Değişikliği kaydetmek için yayımlama profilini kapatın ve yeniden açın.
Yayımla’ya tıklayın. (Gerçek bir üretim web sitesi için ,app_offline.htm üretim ortamına kopyalayıp yayımlamadan önce proje klasörünüzde depolayabilir ve dağıtım tamamlandığında kaldırabilirsiniz.)
Visual Studio, kod değişikliklerini test ortamına dağıtır ve tarayıcıyı Contoso Üniversitesi giriş sayfasına açar.
Eğitmenler sayfasını seçin.
Code First Migrations veritabanını Test ortamındaki gibi güncelleştirir. Yeni Office Saatleri sütununu ve dağıtılmış verileri görürsünüz.
Artık bir SQL Server veritabanı kullanarak veritabanı değişikliği içeren bir uygulama güncelleştirmesini başarıyla dağıttınız.
Daha Fazla Bilgi
Bu, bir ASP.NET web uygulamasını üçüncü taraf barındırma sağlayıcısına dağıtmaya yönelik bu öğretici serisini tamamlar. Bu öğreticilerde ele alınan konulardan herhangi biri hakkında daha fazla bilgi için MSDN web sitesindeki ASP.NET Dağıtım İçeriği Haritası'na bakın.
Teşekkürler
Bu öğretici serisinin içeriğine önemli katkılarda bulunan aşağıdaki kişilere teşekkür etmek istiyorum:
- Alberto Poblacion, MVP & MCT, İspanya
- Jarod Ferguson, Veri Platformu Geliştirme MVP,Birleşik Devletler
- Harsh Mittal, Microsoft
- Kristina Olson, Microsoft
- Mike Pope, Microsoft
- Mohit Srivastava, Microsoft
- Raffaele Rialdi, İtalya
- Rick Anderson, Microsoft
- Sayed Hashimi, Microsoft(twitter: @sayedihashimi)
- Scott Hanselman (twitter: @shanselman)
- Scott Hunter, Microsoft (twitter: @coolcsh)
- Srđan Božović, Sırbistan
- Vishal Joshi, Microsoft (twitter: @vishalrjoshi)