Visual Studio kullanarak ASP.NET Web dağıtımı: kod güncelleştirmesi dağıtma

Tom Dykstra tarafından

Başlatıcı projesi indir

Bu öğretici serisi, Visual Studio 2012 veya Visual Studio 2010 kullanarak bir ASP.NET Web uygulamasını Azure App Service Web Apps veya üçüncü taraf barındırma sağlayıcısına dağıtmayı (yayımlamayı) gösterir. Seriler hakkında daha fazla bilgi için, serideki ilk öğreticiyebakın.

Genel bakış

İlk dağıtımdan sonra, Web sitenizi sürdürme ve Geliştirme çalışmanız devam eder ve uzun bir güncelleştirme dağıtmak isteyeceksiniz. Bu öğretici, uygulama kodunuza bir güncelleştirme dağıtma sürecinde size kılavuzluk sağlar. Bu öğreticide uyguladığınız ve dağıttığınız güncelleştirme bir veritabanı değişikliği içermez; bir sonraki öğreticide veritabanı değişikliğini dağıtma hakkında ne farklılık olduğunu göreceksiniz.

Anımsatıcı: bir hata iletisi alırsanız veya öğreticide ilerlediyseniz bir şey çalışmadıysanız sorun giderme sayfasınıkontrol ettiğinizden emin olun.

Kod değişikliği yapma

Uygulamanıza yönelik bir güncelleştirmeye yönelik basit bir örnek olarak, eğitmenler sayfasına seçili eğitmen tarafından bir kurs listesi ekleyin.

Eğitmenler sayfasını çalıştırırsanız, kılavuzda seçim bağlantıları olduğunu fark edeceksiniz, ancak satır arka planını gri bir şekilde çevirip başka hiçbir şey yapmayamazsınız.

Seçimle ilgili eğitmenler sayfası

Şimdi Seç bağlantısına tıklandığında çalışan kodu ekleyecek ve seçilen eğitmen tarafından bir kurs listesi görüntülemektedir.

  1. Eğitmenler. aspx' te, errormessagelabel Label denetiminden hemen sonra aşağıdaki biçimlendirmeyi 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>
    
  2. Sayfayı çalıştırın ve bir eğitmen seçin. Bu eğitmenin bir kurs listesini görürsünüz.

    Kurslar ile eğitmenler sayfasında eğitim

  3. Tarayıcıyı kapatın.

Kod güncelleştirmesini test ortamına dağıtma

Yayımlama profillerinizi test, hazırlama ve üretime dağıtmak üzere kullanabilmeniz için önce veritabanı yayımlama seçeneklerini değiştirmeniz gerekir. Artık üyelik veritabanı için verme ve veri dağıtım betikleri çalıştırmanız gerekmez.

  1. ContosoUniversity projesine sağ tıklayıp Yayımla' ya tıklayarak Web 'i Yayımla Sihirbazı ' nı açın.
  2. Profil açılır listesinden Test profili ' ne tıklayın.
  3. Ayarlar sekmesine tıklayın.
  4. Veritabanları bölümünde DefaultConnection ' ın altında veritabanını güncelleştir onay kutusunun işaretini kaldırın.
  5. Profil sekmesine tıklayın ve ardından profil açılır listesinden hazırlama profili ' ne tıklayın.
  6. Test profilinde yapılan değişiklikleri kaydetmek isteyip Istemediğiniz sorulduğunda Evet' e tıklayın.
  7. Hazırlama profilinde aynı değişikliği yapın.
  8. Üretim profilinde aynı değişikliği yapmak için işlemi tekrarlayın.
  9. Web 'i Yayımla sihirbazını kapatın.

Sınama ortamına dağıtım artık tek tıklamayla yayımlamayı yeniden çalıştırmanın basit bir sorunudur. Bu işlemi daha hızlı hale getirmek için Web 'ı tek tıklamayla Yayımla araç çubuğunu kullanabilirsiniz.

  1. Görünüm menüsünde araç çubukları ' nı ve ardından Web 'i Yayımla ' yıseçin.

    Selecting_One_Click_Publish_toolbar

  2. Çözüm Gezgini, contosouniversity projesini seçin.

  3. Web 'de Yayımla araç çubuğu ' na tıklayın , Test yayımlama profilini seçin ve ardından Web 'i Yayımla ' ya tıklayın (sol ve sağ işaret eden oklu simge).

    Web_One_Click_Publish_toolbar

  4. Visual Studio, güncelleştirilmiş uygulamayı dağıtır ve tarayıcı otomatik olarak giriş sayfasına açılır.

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

Normal olarak, regresyon testi de yaparsınız (yani, yeni değişikliğin mevcut işlevselliği bozmadığından emin olmak için sitenin geri kalanını test edersiniz). Ancak bu öğreticide, bu adımı atlayıp güncelleştirmeyi hazırlama ve üretime dağıtmaya devam edersiniz.

Yeniden dağıtırken, Web Dağıtımı hangi dosyaların değiştirildiğini otomatik olarak belirler ve yalnızca değiştirilen dosyaları sunucuya kopyalar. Web Dağıtımı, varsayılan olarak, hangilerinin değiştirildiğini anlamak için dosyalarda son değiştirme tarihlerini kullanır. Bazı kaynak denetim sistemleri, dosya içeriklerini değiştirmeseniz bile dosya tarihlerini değiştirir. Bu durumda, hangi dosyaların değiştirildiğini belirleyebilmek için dosya sağlama toplamlarını kullanmak üzere Web Dağıtımı yapılandırmak isteyebilirsiniz. Daha fazla bilgi için, bkz. ASP.NET dağıtımı SSS içinde, Tüm dosyalarımı neden yeniden dağıtıldı?

Dağıtım sırasında uygulamayı çevrimdışına alma

Şimdi dağıttığınız değişiklik, tek bir sayfada basit bir değişiklik. Ancak bazen daha büyük değişiklikler dağıtabilir veya hem kod hem de veritabanı değişikliklerini dağıtırsınız ve bir Kullanıcı, dağıtım tamamlanmadan önce bir sayfa istediğinde site yanlış davranabilir. Dağıtım devam ederken kullanıcıların siteye erişmesini engellemek için, bir uygulamayı çevrimdışı. htm dosyası_ kullanabilirsiniz. App_adlı bir dosyayı uygulamanızın kök klasöründe çevrimdışı. htm olarak YERLEŞTIRDIĞINIZDE, IIS bu dosyayı uygulamanızı çalıştırmak yerine otomatik olarak görüntüler. Bu nedenle, dağıtım sırasında erişimi engellemek için, uygulamayı_çevrimdışı. htm dosyasını kök klasöre yerleştirip dağıtım sürecini çalıştırın ve ardından uygulamayı başarılı bir şekilde yüklemeden sonra çevrimdışı. htm_ kaldırın.

Web Dağıtımı,_otomatik olarak bir varsayılan uygulamayı sunucuya dağıtmaya başladığında ve bu dosyayı tamamlandığında kaldırdığınızda, bu dosyayı sunucusuna otomatik olarak koyabileceğiniz şekilde yapılandırabilirsiniz. Yapmanız gereken tek şey, yayımlama profili (. pubxml) dosyanıza aşağıdaki XML öğesini eklemektir:

<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>

Bu öğreticide, çevrimdışı. htm dosyası_ özel bir uygulama oluşturma ve kullanma hakkında bilgi edineceksiniz.

Hazırlama sitesine erişen kullanıcılarınız olmadığından, uygulamayı hazırlama sitesinde çevrimdışı. htm_ kullanmak gerekli değildir. Ancak her şeyi üretimde dağıtmayı planladığınız şekilde test etmek için hazırlama kullanmak iyi bir uygulamadır.

Çevrimdışı. htm_uygulama oluşturma

  1. Çözüm Gezgini, çözüme sağ tıklayın ve Ekle' ye tıklayın ve ardından Yeni öğe' ye tıklayın.

  2. App_offline. htm adlı bir HTML sayfası oluşturun (varsayılan olarak Visual Studio 'nun oluşturduğu . html uzantısında son "l" ı silin).

  3. Şablon işaretlemesini aşağıdaki biçimlendirme ile 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>
    
  4. Dosyayı kaydedin ve kapatın.

Uygulamayı çevrimdışı. htm_Web sitesinin kök klasörüne kopyalayın

Web sitesine dosya kopyalamak için herhangi bir FTP aracını kullanabilirsiniz. FileZilla , popüler bir FTP aracıdır ve ekran görüntüleri içinde gösterilir.

FTP aracını kullanmak için üç şey gerekir: FTP URL 'SI, Kullanıcı adı ve parola.

URL, Azure Yönetim Portalı Web sitesinin Pano sayfasında gösterilir ve FTP için Kullanıcı adı ve parola, daha önce indirdiğiniz . publishsettings dosyasında bulunabilir. Aşağıdaki adımlarda bu değerlerin nasıl alınacağı gösterilmektedir.

  1. Azure Yönetim Portalı ' de, Web siteleri sekmesi ' ne ve ardından hazırlama Web sitesine tıklayın.

  2. Pano sayfasında, Hızlı bakış bölümünde FTP ana bilgisayar adını bulmak için aşağı kaydırın.

    FTP konak adı

  3. Hazırlama . publishsettings dosyasını Not defteri 'nde veya başka bir metin düzenleyicisinde açın.

  4. FTP profili için publishProfile öğesini bulun.

  5. userName ve userPWD değerlerini kopyalayın.

    FTP kimlik bilgileri

  6. FTP aracınızı açın ve FTP URL 'sinde oturum açın.

  7. App_uygulamasını çözüm klasöründen hazırlama sitesindeki /site/Wwwroot klasörüne kopyalayın.

    App_offline Kopyala

  8. Hazırlama sitenizin URL 'sine gidin. Uygulama_çevrimdışı. htm sayfasının giriş sayfanız yerine görüntülendiğini görürsünüz.

    tarayıcı penceresinde app_offline. htm

Şimdi hazırlama işlemine dağıtmaya hazırsınız.

Kod güncelleştirmesini hazırlama ve üretime dağıtma

  1. Web 'de Yayımla araç çubuğunda, hazırlama yayımlama profilini seçin ve ardından Web 'i Yayımla' ya tıklayın.

    Visual Studio, güncelleştirilmiş uygulamayı dağıtır ve tarayıcının sitenin giriş sayfasında açılmasını sağlar. 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.

  2. FTP aracınızdan geri dönün ve uygulamayı hazırlama sitesinden çevrimdışı. htm_ silin.

  3. Tarayıcıda, hazırlama sitesinde 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.

  4. Hazırlama için yaptığınız gibi üretim için aynı yordamı izleyin.

Değişiklikleri gözden geçirme ve belirli dosyaları dağıtma

Visual Studio 2012 ayrıca tek tek dosyaları dağıtmanıza olanak tanır. Seçili bir dosya için, yerel sürüm ile dağıtılan sürüm arasındaki farkları görüntüleyebilir, dosyayı hedef ortama dağıtabilir veya hedef ortamdaki dosyayı yerel projeye kopyalayabilirsiniz. Öğreticinin bu bölümünde, bu özelliklerin nasıl kullanılacağını görürsünüz.

Dağıtmak için bir değişiklik yapın

  1. Content/site. css' yi açın ve body etiketinin bloğunu bulun.

  2. background-color değerini #fff darkblueolarak değiştirin.

    body {
        background-color: darkblue;
        border-top: solid 10px #000;
        color: #333;
        font-size: .85em;
        font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif;
        margin: 0;
        padding: 0;
    }
    

Yayımlama önizlemesi penceresinde değişikliği görüntüleme

Projeyi yayımlamak için Web 'ı Yayımla Sihirbazı 'nı kullandığınızda, Önizleme penceresinde dosyaya çift tıklayarak hangi değişikliklerin yayımlanacak olduğunu görebilirsiniz.

  1. ContosoUniversity projesine sağ tıklayın ve Yayımla' ya tıklayın.

  2. Profil açılan listesinden, Test yayımlama profilini seçin.

  3. Önizleme' ye ve ardından önizlemeyi Başlat' a tıklayın.

  4. Önizleme bölmesinde, site. css' ye çift tıklayın.

    Site. css ' ye çift tıklayın

    Değişiklikleri Önizle iletişim kutusu, dağıtılacak değişikliklerin önizlemesini gösterir.

    Site. css değişikliklerini Önizle

    Web. config dosyasına çift tıklarsanız, Değişiklikleri Önizle iletişim kutusu derleme yapılandırma dönüştürmelerinizin ve yayımlama profili dönüştürmelerinin etkisini gösterir. Bu noktada, sunucuda Web. config dosyasının değişmesine neden olacak hiçbir şey gerçekleştirmedi, bu nedenle hiçbir değişiklik olmadığını görmeyi düşünüyorsunuz. Ancak, Değişiklikleri Önizle penceresi yanlış bir şekilde iki değişiklik gösterir. İki XML öğesi, kaldırılacak şekilde görünür. Bu öğeler, bir Code First bağlam sınıfı için uygulama başlatıldığında Code First Migrations Çalıştır ' ı seçtiğinizde Yayımla işlemi tarafından eklenir. Karşılaştırma, yayımlama işlemi bu öğeleri eklemeden önce yapılır, bu nedenle kaldırılmasa da kaldırılmamaları gibi görünüyor. Bu hata gelecekteki bir sürümde düzeltilecektir.

  5. Kapat'ı tıklatın.

  6. Yayımla’ta tıklayın.

  7. Tarayıcı, test sitesinin giriş sayfasında açıldığında, CSS değişikliğinin etkisini görmek için sabit yenilemeye yol açacak şekilde CTRL + F5 tuşlarına basın.

    CSS değişikliğinin etkisi

  8. Tarayıcıyı kapatın.

Belirli dosyaları Çözüm Gezgini yayımlama

Mavi arka planı beğenmediğinizi ve orijinal renge dönmek istediğinizi varsayalım. Bu bölümde, belirli bir dosyayı doğrudan Çözüm Gezginiyayımlayarak özgün ayarları geri yükleyeceksiniz.

  1. Content/site. css ' i açın ve background-color ayarını #fffgeri yükleyin.

  2. Çözüm Gezgini, Content/site. css dosyasına sağ tıklayın.

    Bağlam menüsünde üç yayımlama seçeneği gösterilir.

    Çözüm Gezgini seçenekleri yayımlama

  3. Site. css değişikliklerini Önizle' ye tıklayın.

    Yerel dosya ile hedef ortamdaki sürümü arasındaki farkları göstermek için bir pencere açılır.

    Diff-Content/site. css

  4. Çözüm Gezgini, site. css ' ye yeniden sağ tıklayıp site. CSS Yayımla' ya tıklayın.

    Web yayımlama etkinliği penceresi, dosyanın yayımlandığını gösterir.

    Web yayımlama etkinliği penceresi

  5. http://localhost/contosouniversity URL 'SI için bir tarayıcı açın ve ardından CTRL + F5 tuşlarına basarak CSS değişikliğinin etkisini görmek için bir sabit yenilemeye neden olması gerekir.

    Normal CSS ile ana sayfa

  6. Tarayıcıyı kapatın.

Özet

Artık bir veritabanı değişikliği içermeyen bir uygulama güncelleştirmesi dağıtmanın birkaç yolunu gördünüz ve nelerin güncelleştirileceğini doğrulamak için değişikliklerin nasıl önizlendiğini gördünüz. Eğitmenler sayfasında şimdi bir Kurslar taöğretme bölümü vardır.

Kurslar ile eğitmenler sayfasında eğitim

Sonraki öğreticide bir veritabanı değişikliğini dağıtma gösterilmektedir: veritabanına ve eğitmenler sayfasına bir Doğum tarihi alanı ekleyeceksiniz.