Aracılığıyla paylaş


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

Başlangıç Projesini İndir

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.

Instructors_page

Ş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.

Instructors_page_with_courses

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.

Selecting_One_Click_Publish_toolbar

Çö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).

Web_One_Click_Publish_toolbar

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.

Instructors_page_with_courses_Test

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.

Exclude_files_from_the_App_Data_folder

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.

Creating_a_solution_folder

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.

Upload_button_in_File_Manager

Dosyayı Karşıya Yükle iletişim kutusunda, app_offline.htm dosyasını seçin ve karşıya yükle'ye tıklayın.

Upload_dialog_box_in_File_Manager

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.

App_offline.htm_page_in_production

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.

Deleting_app_offline.htm

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.

Instructors_page_with_courses_Prod

Ş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.