Aracılığıyla paylaş


Visual Studio veya Visual Web Developer kullanarak SQL Server Compact ile ASP.NET Web Uygulaması Dağıtma: Üretim Ortamına Dağıtma - 7/12

tarafından Tom Dykstra

Başlangıç Projelerini İ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ümleri dağıtmayı ve Azure App Service Web Apps'a dağıtmayı gösteren bir öğretici için bkz. Visual Studio kullanarak Web Dağıtımı'nı ASP.NET.

Genel Bakış

Bu öğreticide, bir barındırma sağlayıcısı ile bir hesap ayarlar ve Visual Studio tek tıklamayla yayımlama özelliğini kullanarak ASP.NET web uygulamanızı üretim ortamına dağıtırsınız.

Anımsatıcı: Öğreticide ilerlerken bir hata iletisi alırsanız veya bir şey çalışmıyorsa sorun giderme sayfasını kontrol edin.

Barındırma Sağlayıcısı Seçme

Contoso University uygulaması ve bu öğretici serisi için ASP.NET 4 ve Web Dağıtımı'nı destekleyen bir sağlayıcıya ihtiyacınız vardır. Öğreticilerin canlı bir web sitesine dağıtma deneyiminin tamamını gösterebilmesi için belirli bir barındırma şirketi seçildi. Her barındırma şirketi farklı özellikler sağlar ve sunucularına dağıtma deneyimi biraz değişir. Ancak, bu öğreticide açıklanan işlem genel işlem için tipiktir. Bu öğreticide kullanılan barındırma sağlayıcısı Cytanium.com, kullanılabilen birçok sağlayıcıdan biridir ve bu öğreticide kullanılması bir onay veya öneri oluşturmaz.

Kendi barındırma sağlayıcınızı seçmeye hazır olduğunuzda, Microsoft.com/web sitesindeki sağlayıcı galerisindeki özellikleri ve fiyatları karşılaştırabilirsiniz.

Hesap Oluşturma

Seçtiğiniz sağlayıcıda bir hesap oluşturun. Tam SQL Server veritabanı desteği ek bir özellikse, bu öğretici için seçmeniz gerekmez, ancak bu serinin sonraki bölümlerindeki SQL Server Geçiş öğreticisi için buna ihtiyacınız olacaktır.

Bu öğreticiler için yeni bir etki alanı adı kaydetmeniz gerekmez. Sağlayıcı tarafından siteye atanan geçici URL'yi kullanarak dağıtımın başarılı olup olmadığını test edebilirsiniz.

Hesap oluşturulduktan sonra genellikle sitenizi dağıtmak ve yönetmek için ihtiyacınız olan tüm bilgileri içeren bir karşılama e-postası alırsınız. Barındırma sağlayıcınızın size gönderdiği bilgiler, burada gösterilene benzer olacaktır. Yeni hesap sahiplerine gönderilen Cytanium karşılama e-postası aşağıdaki bilgileri içerir:

  • Sitenizin ayarlarını yönetebileceğiniz sağlayıcı denetim masası sitesinin URL'si. Belirttiğiniz kimlik ve parola, kolay başvuru için hoş geldiniz e-postasının bu bölümüne eklenir. (Her ikisi de bu çizim için bir tanıtım değeri olarak değiştirildi.)

    Welcome_Email_Control_Panel_URL

  • Varsayılan .NET Framework sürümü ve nasıl değiştireceğini gösteren bilgiler. Birçok barındırma sitesi varsayılan olarak 2.0'a sahiptir ve bu, .NET Framework 2.0, 3.0 veya 3.5'i hedefleyen ASP.NET uygulamalarla çalışır. Ancak Contoso Üniversitesi bir .NET Framework 4 uygulaması olduğundan bu ayarı değiştirmeniz gerekir. (ASP.NET 4.5 uygulaması için .NET 4.0 ayarını kullanabilirsiniz.)

    Welcome_Email_Framework_Version

  • Web sitenize erişmek için kullanabileceğiniz geçici URL. Bu hesap oluşturulduğunda, var olan etki alanı adı olarak "contosouniversity.com" girildi. Bu nedenle geçici URL şeklindedir http://contosouniversity.com.vserver01.cytanium.com.

    Welcome_Email_Temporary_URL

  • Veritabanlarını ayarlama hakkında bilgi ve bunlara erişmek için ihtiyacınız olan bağlantı dizeleri:

    Welcome_Email_Database_Info

  • Sitenizi dağıtmaya yönelik araçlar ve ayarlar hakkında bilgi. (Cytanium'dan gelen e-posta, burada atlanan WebMatrix'ten de bahseder.)

    Welcome_Email_Deploy_info

.NET Framework Sürümünü Ayarlama

Cytanium karşılama e-postası, .NET Framework sürümünü değiştirme yönergelerinin bağlantısını içerir. Bu yönergeler bunun Cytanium kontrol paneli aracılığıyla yapılabilmesini açıklar. Diğer sağlayıcılar farklı görünen denetim masası sitelerine sahiptir veya bunu farklı bir şekilde yapmanızı isteyebilirler.

Denetim masası URL'sine gidin. Kullanıcı adınız ve parolanızla oturum açtıktan sonra denetim masasını görürsünüz.

Cytanium_Control_Panel

Barındırma Alanları kutusunda işaretçiyi Web simgesinin üzerinde tutun ve menüden Web Siteleri'ni seçin.

Cytanium_Control_Panel_selecting_Web_Sites

Web Siteleri kutusunda contosouniversity.com (hesabı oluştururken kullandığınız sitenin adı) öğesine tıklayın.

Cytanium_Control_Panel_selecting_contosouniversity

Web Sitesi Özellikleri kutusunda Uzantılar sekmesini seçin.

Cytanium_Control_Panel_Extensions_tab

ASP.NET 2.0 Tümleşik İşlem Hattı yerine 4.0 (Tümleşik İşlem Hattı) olarak değiştirin ve Güncelleştir'e tıklayın.

Barındırma Sağlayıcısına Yayımlama

Barındırma sağlayıcısından gelen karşılama e-postası, projeyi yayımlamak için ihtiyacınız olan tüm ayarları içerir ve bu bilgileri bir yayımlama profiline el ile girebilirsiniz. Ancak sağlayıcıya dağıtımı yapılandırmak için daha kolay ve daha az hataya açık bir yöntem kullanacaksınız: .publishsettings dosyasını indirip bir yayımlama profiline aktaracaksınız.

Tarayıcınızda Cytanium denetim masasına gidin, Web'i ve ardından Web Siteleri'ni seçin.

Web Sitelerini seçmeyi Denetim Masası

contosouniversity.com web sitesini seçin.

contosouniversity.com seçmeyi Denetim Masası

Web Yayımlama sekmesini seçin.

Web Yayımlama sekmesini Denetim Masası

Kullanıcı adı ve parola girerek web yayımlama için kullanılacak kimlik bilgilerini oluşturun. Denetim masasında oturum açmak için kullandığınız kimlik bilgilerini girebilirsiniz. Ardından Etkinleştir'e tıklayın.

Yayımlama kimlik bilgilerini Denetim Masası oluşturma

Bu web sitesi için Yayımlama Profilini İndir'e tıklayın.

Yayımlama profilini Denetim Masası indirme

Dosyayı açmanız veya kaydetmeniz istendiğinde kaydedin.

Yayımlama profili dosyasını kaydetme

Visual Studio'daki Çözüm Gezgini ContosoUniversity projesine sağ tıklayın ve Yayımla'yı seçin. Web'i Yayımla iletişim kutusu Önizleme sekmesinde açılır ve Test profili seçili durumdadır çünkü bu kullandığınız son profildir.

Profil sekmesini seçin ve ardından İçeri Aktar'a tıklayın.

Web'i Yayımla sihirbazı İçeri Aktar düğmesi

Yayımlama Ayarlarını İçeri Aktar iletişim kutusunda, indirdiğiniz .publishsettings dosyasını seçin ve Aç'a tıklayın. Sihirbaz, tüm alanları doldurulmuş olarak Bağlantı sekmesine ilerler.

Web'i Yayımla sihirbazı Bağlantı sekmesi

.publishsettings dosyası site için planlanan kalıcı URL'yi Hedef URL kutusuna yerleştirir, ancak bu etki alanını henüz satın almadıysanız değeri geçici URL ile değiştirin. Bu örnekte URL http://contosouniversity.com.vserver01.cytanium.com , bu kutunun tek amacı, tarayıcının dağıtımdan sonra başarıyla açıldıktan sonra otomatik olarak hangi URL'ye açılacağını belirtmektir. Boş bırakırsanız tek sonuç, tarayıcının dağıtımdan sonra otomatik olarak başlatılmamış olmasıdır.

Ayarların doğru olduğunu ve sunucuya bağlanabildiğinizi doğrulamak için Bağlantıyı Doğrula'ya tıklayın. Daha önce gördüğünüz gibi, yeşil bir onay işareti bağlantının başarılı olduğunu doğrular.

Bağlantıyı Doğrula'ya tıkladığınızda bir Sertifika Hatası iletişim kutusu görebilirsiniz. Bunu yaparsanız, sunucu adının beklediğiniz gibi olduğunu doğrulayın. Bu durumda , Visual Studio'nun gelecek oturumları için bu sertifikayı kaydet'i seçin ve Kabul Et'e tıklayın. (Bu hata, barındırma sağlayıcısının dağıttığınız URL için SSL sertifikası satın alma masrafını önlemeyi seçtiği anlamına gelir. Geçerli bir sertifika kullanarak güvenli bir bağlantı kurmayı tercih ediyorsanız barındırma sağlayıcınıza başvurun.)

Sertifika hatası

İleri’ye tıklayın.

Ayarlar sekmesinin Veritabanları bölümünde, Test yayımlama profili için girdiğiniz değerlerin aynısını girin. İhtiyacınız olan bağlantı dizelerini açılan listelerde bulabilirsiniz.

  • SchoolContext bağlantı dizesi kutusundaData Source=|DataDirectory|School-Prod.sdf
  • SchoolContext'in altında Code First Migrations Uygula'yı seçin.
  • DefaultConnection bağlantı dizesi kutusundaData Source=|DataDirectory|aspnet-Prod.sdf
  • VarsayılanBağlantı'nın altında Veritabanını güncelleştir'i temiz bırakın.

Web'i Yayımla sihirbazı Ayarlar sekmesi

İleri’ye tıklayın.

Kopyalanacak dosyaların listesini görmek için Önizleme sekmesinde Önizlemeyi Başlat'a tıklayın. Daha önce yerel bilgisayarda IIS'ye dağıttığınızda gördüğünüz listenin aynısını görürsünüz.

Yayımlamadan önce, Web.Production.config dönüştürme dosyanızın uygulanması için profilin adını değiştirin. Profil sekmesini seçin ve Profilleri Yönet'e tıklayın.

Web Yayımlama sihirbazı Profilleri Yönet

Web Yayımlama Profillerini Düzenle iletişim kutusunda üretim profilini seçin, Yeniden Adlandır'a tıklayın ve profil adını Üretim olarak değiştirin. Ardından Kapat'a tıklayın.

Web Yayımlama Profillerini Düzenle iletişim kutusu

Yayımla’ya tıklayın.

Uygulama barındırma sağlayıcısına yayımlanır. Sonuç , Çıkış penceresinde gösterilir.

Dağıtımdan sonra çıkış penceresi

Tarayıcı, Web'i Yayımla sihirbazının Bağlantı sekmesindeki Hedef URL kutusuna girdiğiniz URL'yi otomatik olarak açar. Siteyi Visual Studio'da çalıştırdığınızda gördüğünüz giriş sayfasını görürsünüz, ancak artık başlık çubuğunda "(Test)" veya "(Geliştirme)" ortam göstergesi yoktur. Bu, ortam göstergesinin dönüştürmeWeb.config düzgün çalıştığını gösterir.

Not

Başlıkta hala "(Test)" ifadesini görüyorsanız ContosoUniversity projesinden obj klasörünü silin ve yeniden dağıtın. Yazılımın yayın öncesi sürümlerinde, Üretim profilini kullanıyor olmanıza rağmen daha önce uygulanan dönüştürme dosyası (Web.Test.config) yeniden uygulanabilir.

Home_page_Prod

Veritabanı erişimine neden olan bir sayfayı çalıştırmadan önce Elmah'ın oluşan hataları günlüğe kaydedebildiğinden emin olun.

Elmah için Klasör İzinlerini Ayarlama

Bu serinin önceki öğreticisinden hatırlayacağınız gibi, uygulamanın uygulamanızda Elmah'ın hata günlüğü dosyalarını depoladığı klasör için Yazma izinlerine sahip olduğundan emin olmanız gerekir. Bilgisayarınızda IIS'ye yerel olarak dağıttığınızda, bu izinleri el ile ayarlarsınız. Bu bölümde Cytanium'da izinleri ayarlamayı öğreneceksiniz. (Bazı barındırma sağlayıcıları bunu yapmanıza izin vermeyebilir; Yazma izinlerine sahip önceden tanımlanmış bir veya daha fazla klasör sunabilir. Bu durumda, uygulamanızı belirtilen klasörleri kullanacak şekilde değiştirmeniz gerekir.)

Cytanium denetim masasında klasör izinlerini ayarlayabilirsiniz. Denetim masası URL'sine gidin ve Dosya Yöneticisi'ni seçin.

Cytanium_Control_Panel_with_File_Manager_selected

Uygulamanın kök klasörünü görmek için Dosya Yöneticisi kutusunda contosouniversity.com ve ardından wwwroot'u seçin. Elmah'ın yanındaki asma kilit simgesine tıklayın.

Cytanium_Control_Panel_File_Manager_at_root_folder

Dosya/Klasörü İzinleri penceresinde, contosouniversity.com için Okuma ve Yazma onay kutularını seçin ve İzinleri Ayarla'ya tıklayın.

Cytanium_Control_Panel_File_Folder_Permissions_Elmah

Elmah'ın hataya neden olarak Elmah klasörüne yazma erişimi olduğundan emin olun ve ardından Elmah hata raporunu görüntüleyin. Studentsx.aspx gibi geçersiz bir URL isteyin. Daha önce olduğu gibi GenericErrorPage.aspx sayfasını görürsünüz. Oturumu Kapat bağlantısına tıklayın ve Elmah.axd dosyasını çalıştırın. önce Oturum Aç sayfasını alırsınız ve bu sayfaWeb.config dönüşümünü Elmah yetkilendirmesini başarıyla eklediğini doğrular. Oturum açtıktan sonra, az önce neden olduğunuz hatayı gösteren raporu görürsünüz.

Elmah.axd_Prod

Üretim Ortamında Test Etme

Öğrenciler sayfasını çalıştırın. Uygulama, School veritabanına ilk kez erişmeye çalışır ve bu da veritabanını oluşturmak için Code First Migrations tetikler. Sayfa bir dakika gecikmeden sonra görüntülendiğinde, hiç öğrenci olmadığını gösterir.

Students_page_Prod

Tohum verilerinin veritabanına eğitmen verilerini başarıyla eklediğini doğrulamak için Eğitmenler sayfasını çalıştırın.

Instructors_page_Prod

Test ortamında yaptığınız gibi, veritabanı güncelleştirmelerinin üretim ortamında çalıştığını doğrulamak istiyorsunuz, ancak genellikle test verilerini üretim veritabanınıza girmek istemiyorsunuz. Bu öğretici için testte kullandığınız yöntemi kullanacaksınız. Ancak gerçek bir uygulamada, test verilerini üretim veritabanına eklemeden veritabanı güncelleştirmelerinin başarılı olduğunu doğrulayan bir yöntem bulmak isteyebilirsiniz. Bazı uygulamalarda, bir şey ekleyip silmek pratik olabilir.

Veritabanındaki verileri güncelleştirebildiğinizi doğrulamak için bir öğrenci ekleyin ve öğrenciler sayfasına girdiğiniz verileri görüntüleyin.

Add_Students_page_Prod

Students_page_with_new_student_Prod

Kurslar menüsünden Kredileri Güncelleştir'i seçerek yetkilendirme kurallarının düzgün çalıştığını doğrulayın. Oturum Aç sayfası görüntülenir. Yönetici hesabı kimlik bilgilerinizi girin, Oturum Aç'a tıklayın ve Kredileri Güncelleştir sayfası görüntülenir.

Log_In_page_Prod

Oturum açma başarılı olursa , Kredileri Güncelleştir sayfası görüntülenir. Bu, ASP.NET üyelik veritabanının (tek yönetici hesabıyla) başarıyla dağıtıldığını gösterir.

Update_Credits_page_Prod

Sitenizi başarıyla dağıtıp test etmiş oldunuz ve İnternet üzerinden herkese açık olarak kullanılabilir.

Daha Güvenilir Bir Test Ortamı Oluşturma

Test Ortamına Dağıtma öğreticisinde açıklandığı gibi, en güvenilir test ortamı barındırma sağlayıcısında aynı üretim hesabı gibi ikinci bir hesap olacaktır. Bu, ikinci bir barındırma hesabına kaydolmanız gerekeceğinden, test ortamınız olarak yerel IIS'yi kullanmaktan daha pahalı olacaktır. Ancak üretim alanı hatalarını veya kesintilerini engellerse, bunun maliyete değeceğini düşünebilirsiniz.

Test hesabı oluşturma ve test hesabına dağıtma işleminin çoğu, üretime dağıtmak için daha önce yaptığınız işlemlere benzer:

  • Web.config dönüştürme dosyası oluşturun.
  • Barındırma sağlayıcısında bir hesap oluşturun.
  • Yeni bir yayımlama profili oluşturun ve test hesabına dağıtın.

Test Sitesine Genel Erişimi Engelleme

Test hesabı için dikkat edilmesi gereken önemli nokta, hesabın İnternet'te canlı olması, ancak genelin bunu kullanmasını istememektir. Siteyi gizli tutmak için aşağıdaki yöntemlerden birini veya daha fazlasını kullanabilirsiniz:

  • Yalnızca test için kullandığınız IP adreslerinden test sitesine erişime izin veren güvenlik duvarı kuralları ayarlamak için barındırma sağlayıcısına başvurun.
  • URL'yi, genel sitenin URL'sine benzmeyecek şekilde gizleyin.
  • Arama motorlarının test sitesinde gezinmediğinden ve arama sonuçlarında bu sitenin bağlantılarını raporladığından emin olmak için bir robots.txt dosyası kullanın.

Bu yöntemlerin ilki açıkça en güvenlidir, ancak bunun yordamı her barındırma sağlayıcısına özgüdür ve bu öğreticide ele alınmayacaktır. Barındırma sağlayıcınızla yalnızca IP adresinizin test hesabı URL'sine göz atmasına izin verecek şekilde ayarlarsanız, teorik olarak arama motorlarının gezinmesi konusunda endişelenmeniz gerekmez. Ancak bu durumda bile , birrobots.txt dosyası dağıtmak, güvenlik duvarı kuralının yanlışlıkla kapatılması durumunda yedekleme olarak iyi bir fikirdir.

robots.txt dosyası proje klasörünüzde yer almalıdır ve içinde aşağıdaki metin bulunmalıdır:

User-agent: *
Disallow: /

Satır, User-agent arama motorlarına dosyadaki kuralların tüm arama motoru web gezginleri (robotlar) için geçerli olduğunu bildirir ve Disallow satır sitede hiçbir sayfada gezinilmemesi gerektiğini belirtir.

Arama motorlarının üretim sitenizi kataloglamasını büyük olasılıkla istersiniz, bu nedenle bu dosyayı üretim dağıtımının dışında tutmanız gerekir. Bunu yapmak için bkz. Web Uygulaması Proje Dağıtımı SSS ASP.NETbelirli dosyaları veya klasörleri dağıtımdan dışlayabilir miyim? Yalnızca Üretim yayımlama profili için dışlama belirttiğinizden emin olun.

İkinci bir barındırma hesabı oluşturmak, gerekli olmayan ancak ek harcamaya değebilecek bir test ortamıyla çalışmaya yönelik bir yaklaşımdır. Aşağıdaki öğreticilerde, test ortamınız olarak IIS kullanmaya devam edersiniz.

Sonraki öğreticide uygulama kodunu güncelleştirecek ve değişikliğinizi test ve üretim ortamlarına dağıtacaksınız.