Visual Studio veya Visual Web Developer kullanarak SQL Server Compact ile ASP.NET Bir Web Uygulaması Dağıtma: Yalnızca Koda Dayalı Güncelleştirme Dağıtma - 8 /12
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ümlerini dağıtmayı ve Azure Uygulaması Service Web Apps'e dağıtmayı gösteren bir öğretici için bkz. Visual Studio kullanarak Web Dağıtımı ASP.NET.
Genel bakış
İlk dağıtımdan sonra, web sitenizi koruma ve geliştirme çalışmalarınız devam eder ve çok geçmeden bir güncelleştirme dağıtmak istersiniz. Bu öğretici, uygulama kodunuz için bir güncelleştirme dağıtma işleminde size yol gösterir. Bu güncelleştirme bir veritabanı değişikliği içermez; bir sonraki öğreticide veritabanı değişikliğini dağıtmayla ilgili farklı olan şeyleri göreceksiniz.
Anımsatıcı: Bir hata iletisi alırsanız veya öğretici boyunca bir şey çalışmıyorsa sorun giderme sayfasını kontrol edin.
Kod Değişikliği Yapma
Uygulamanıza yönelik basit bir güncelleştirme örneği olarak, Eğitmenler sayfasına seçili eğitmen tarafından öğretilen derslerin listesini ekleyeceksiniz.
Eğitmenler sayfasını çalıştırırsanız kılavuzda Bağlantıları seç olduğunu fark edersiniz, ancak satır arka planının griye dönmesi dışında hiçbir şey yapmazlar.
Şimdi Seç bağlantısına tıklandığında çalışan ve seçilen eğitmen tarafından öğretilen derslerin listesini görüntüleyen bir kod ekleyeceksiniz.
Instructors.aspx,ErrorMessageLabel Label
denetiminden hemen sonra aşağıdaki işaretlemeyi ekleyin:
<h3>Courses Taught</h3>
<asp:ObjectDataSource ID="CoursesObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
DataObjectTypeName="ContosoUniversity.DAL.Course" SelectMethod="GetCoursesByInstructor">
<SelectParameters>
<asp:ControlParameter ControlID="InstructorsGridView" Name="PersonID" PropertyName="SelectedDataKey.Value"
Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="CoursesGridView" runat="server" DataSourceID="CoursesObjectDataSource"
AllowSorting="True" AutoGenerateColumns="False" SelectedRowStyle-BackColor="LightGray"
DataKeyNames="CourseID">
<EmptyDataTemplate>
<p>No courses found.</p>
</EmptyDataTemplate>
<Columns>
<asp:BoundField DataField="CourseID" HeaderText="ID" ReadOnly="True" SortExpression="CourseID" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:TemplateField HeaderText="Department" SortExpression="DepartmentID">
<ItemTemplate>
<asp:Label ID="GridViewDepartmentLabel" runat="server" Text='<%# Eval("Department.Name") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Sayfayı çalıştırın ve bir eğitmen seçin. Bu eğitmen tarafından öğretilen derslerin listesini görürsünüz.
Kod Güncelleştirmesini Test Ortamına Dağıtma
Test ortamına dağıtmak, tek tıklamayla yayımlamayı yeniden çalıştırmak için basit bir işlemdir. Bu işlemi daha hızlı hale getirmek için Web One Click Yayımla araç çubuğunu kullanabilirsiniz.
Görünüm menüsünde Araç Çubukları'nı ve ardından Web Tek Tıklamayla Yayımla'yı seçin.
Çözüm Gezgini contosoUniversity projesini seçin.
Web One Click Yayımla araç çubuğuna tıklayın, Test yayımlama profilini seçin ve ardından Web'i Yayımla'ya tıklayın (okların sola ve sağa işaret eden simgesi).
Visual Studio güncelleştirilmiş uygulamayı dağıtır ve tarayıcı otomatik olarak giriş sayfasına açılır. Eğitmenler sayfasını çalıştırın ve güncelleştirmenin başarıyla dağıtıldığını doğrulamak için bir eğitmen seçin.
Normalde regresyon testi de yaparsınız (yani, yeni değişikliğin mevcut işlevleri bozmadığından emin olmak için sitenin geri kalanını test edin). Ancak bu öğretici için bu adımı atlayıp güncelleştirmeyi üretim ortamına dağıtmaya devam edersiniz.
İlk Veritabanı Durumunun Üretime Yeniden Dağıtılmasını Önleme
Gerçek bir uygulamada, kullanıcılar ilk dağıtımınızdan sonra üretim sitenizle etkileşim kurar ve veritabanları canlı verilerle doldurulur. Bu nedenle, üyelik veritabanını ilk durumunda yeniden dağıtmak istemezsiniz ve bu da tüm canlı verileri siler. SQL Server Compact veritabanları App_Data klasöründeki dosyalar olduğundan, App_Data klasöründeki dosyaların dağıtılmaması için dağıtım ayarlarını değiştirerek bunu engellemeniz gerekir.
ContosoUniversity projesinin Proje Özellikleri penceresini açın ve Paketle/Yayımla Web sekmesini seçin. Yapılandırma açılan kutusunda Etkin (Yayın) veya Yayın seçili olduğundan emin olun, App_Data klasöründen dosyaları dışla'yı seçin.
Gelecekte bir hata ayıklama derlemesi dağıtmaya karar vermeniz durumunda, Hata ayıklama derleme yapılandırması için aynı değişikliği yapmak iyi bir fikirdir: Yapılandırma'yı Hata Ayıklama olarak değiştirin ve ardından App_Data klasöründen dosyaları dışla'yı seçin.
Web'i Paketle /Yayımla sekmesini kaydedin ve kapatın.
Not
Önemli
Yayımlama profillerinizde Hedefte ek dosyaları kaldır seçeneğinin seçili olmadığından emin olun. Bu seçeneği belirlerseniz, dağıtım işlemi dağıtılan sitedeki App_Data sahip olduğunuz veritabanlarını siler ve App_Data klasörünün kendisini siler.
Güncelleştirme Sırasında Üretim Sitesine Kullanıcı Erişimini Engelleme
Şimdi dağıttığınız değişiklik, tek bir sayfada yapılan basit bir değişikliktir. Ancak bazen daha büyük değişiklikler dağıtırsınız ve bu durumda kullanıcı dağıtım tamamlanmadan önce bir sayfa isterse site garip davranabilir. Bunu önlemek için bir app_offline.htm dosyası kullanabilirsiniz. uygulamanızın kök klasörüne app_offline.htm adlı bir dosya yerleştirdiğinizde IIS, uygulamanızı çalıştırmak yerine bu dosyayı otomatik olarak görüntüler. Bu nedenle dağıtım sırasında erişimi önlemek için app_offline.htm kök klasöre koyar, dağıtım işlemini çalıştırır ve app_offline.htm kaldırırsınız.
Çözüm Gezgini'da çözüme sağ tıklayın (projelerden birine değil) ve Yeni Çözüm Klasörü'ne tıklayın.
Klasöre SolutionFiles adını verin.
Yeni klasörde app_offline.htm adlı bir HTML sayfası oluşturun. Var olan içeriği aşağıdaki işaretlemeyle değiştirin:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Contoso University - Under Construction</title>
</head>
<body>
<h1>Contoso University</h1>
<h2>Under Construction</h2>
<p>The Contoso University site is temporarily unavailable while we upgrade it. Please try again later.</p>
</body>
</html>
App_offline.htm dosyasını bir FTP bağlantısı veya barındırma sağlayıcısının denetim masasındaki Dosya Yöneticisi yardımcı programını kullanarak siteye kopyalayabilirsiniz. Bu öğreticide Dosya Yöneticisi'ni kullanacaksınız.
Denetim masasını açın ve Üretim Ortamına Dağıtma öğreticisinde yaptığınız gibi Dosya Yöneticisi'ni seçin. uygulamanızın kök klasörüne ulaşmak için contosouniversity.com ve ardından wwwroot öğesini seçin ve ardından Karşıya Yükle'ye tıklayın.
Dosyayı Karşıya Yükle iletişim kutusunda, app_offline.htm dosyasını seçin ve karşıya yükle'ye tıklayın.
Sitenizin URL'sine göz atın. Artık giriş sayfanız yerine app_offline.htm sayfasının görüntülendiğini görürsünüz.
Artık üretime dağıtmaya hazırsınız.
Kod Güncelleştirmesini Üretim Ortamına Dağıtma
Web Tek Tıkla Yayımla araç çubuğunda Üretim yayımlama profilini seçin ve Web'i Yayımla'ya tıklayın.
Visual Studio güncelleştirilmiş uygulamayı dağıtır ve tarayıcıyı sitenin giriş sayfasına açar. app_offline.htm dosyası görüntülenir. Başarılı dağıtımı doğrulamayı test etmeden önce app_offline.htm dosyasını kaldırmanız gerekir.
Denetim masasında Dosya Yöneticisi uygulamasına dönün. contosouniversity.com ve wwwroot'ı seçin, app_offline.htm'ı seçin ve ardından Sil'e tıklayın.
Tarayıcıda, genel sitede Eğitmenler sayfasını açın ve güncelleştirmenin başarıyla dağıtıldığını doğrulamak için bir eğitmen seçin.
Şimdi veritabanı değişikliği içermeyen bir uygulama güncelleştirmesi dağıttınız. Sonraki öğreticide bir veritabanı değişikliğinin nasıl dağıtılacağı gösterilmektedir.