Visual Studio veya Visual Web Developer kullanarak SQL Server Compact ile ASP.NET Web Uygulaması Dağıtma: Test Ortamı Olarak IIS'ye Dağıtma - 5/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'ye dağıtmayı gösteren bir öğretici için bkz. Visual Studio kullanarak Web Dağıtımı'nı ASP.NET.

Genel Bakış

Bu öğreticide, ASP.NET web uygulamasının yerel bilgisayardaki IIS'ye nasıl dağıtılacağı gösterilmektedir.

Bir uygulama geliştirirken genellikle Visual Studio'da çalıştırarak test edersiniz. Varsayılan olarak bu, Visual Studio Geliştirme Sunucusu'nu (Cassini olarak da bilinir) kullandığınız anlamına gelir. Visual Studio Geliştirme Sunucusu, Visual Studio'da geliştirme sırasında test etme işlemini kolaylaştırır, ancak tam olarak IIS gibi çalışmaz. Sonuç olarak, bir uygulamanın Visual Studio'da test ettiğinizde doğru şekilde çalışması ancak bir barındırma ortamında IIS'ye dağıtıldığında başarısız olması mümkündür.

Uygulamanızı şu yollarla daha güvenilir bir şekilde test edebilirsiniz:

  1. Geliştirme sırasında Visual Studio'da test ederken Visual Studio Geliştirme Sunucusu yerine IIS Express veya tam IIS kullanın. Bu yöntem genellikle sitenizin IIS altında nasıl çalıştırılacağını daha doğru bir şekilde öykünebilir. Ancak, bu yöntem dağıtım işleminizi test etmez veya dağıtım işleminin sonucunun doğru şekilde çalışacağını doğrulamaz.
  2. Daha sonra üretim ortamınıza dağıtmak için kullanacağınız işlemi kullanarak uygulamayı geliştirme bilgisayarınızda IIS'ye dağıtın. Bu yöntem, uygulamanızın IIS altında doğru şekilde çalışacağını doğrulamanın yanı sıra dağıtım işleminizi de doğrular.
  3. Uygulamayı üretim ortamınıza mümkün olduğunca yakın bir test ortamına dağıtın. Bu öğreticiler için üretim ortamı bir üçüncü taraf barındırma sağlayıcısı olduğundan, ideal test ortamı barındırma sağlayıcısı ile ikinci bir hesap olacaktır. Bu ikinci hesabı yalnızca test için kullanırsınız, ancak üretim hesabıyla aynı şekilde ayarlanır.

Bu öğreticide 2. seçeneğin adımları gösterilmektedir. 3. seçenek için yönergeler , Üretim Ortamına Dağıtma öğreticisinin sonunda sağlanır ve bu öğreticinin sonunda 1. seçenek için kaynakların bağlantıları bulunur.

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

Uygulamayı Orta Güvende Çalışacak Şekilde Yapılandırma

IIS'yi yüklemeden ve buna dağıtmadan önce, sitenin tipik bir paylaşılan barındırma ortamında olduğu gibi çalışmasını sağlamak için bir Web.config dosyası ayarını değiştireceksiniz.

Barındırma sağlayıcıları genellikle web sitenizi orta güven içinde çalıştırır, bu da bazı işlemlerin yapılmasına izin verilmediği anlamına gelir. Örneğin, uygulama kodu Windows kayıt defterine erişemez ve uygulamanızın klasör hiyerarşisinin dışındaki dosyaları okuyamaz veya yazamaz. Varsayılan olarak uygulamanız yerel bilgisayarınızda yüksek güven içinde çalışır, bu da uygulamanın üretim ortamına dağıttığınızda başarısız olacak işlemler gerçekleştirebileceği anlamına gelir. Bu nedenle, test ortamının üretim ortamını daha doğru yansıtması için uygulamayı orta güven içinde çalışacak şekilde yapılandıracaksınız.

Uygulama Web.config dosyasında, bu örnekte gösterildiği gibi system.web öğesine bir trust öğesi ekleyin.

<configuration>
  <!-- Settings -->
  <system.web>
    <trust level="Medium" />
    <!-- Settings -->
  </system.web>
</configuration>

Uygulama artık yerel bilgisayarınızda bile IIS'de orta güven içinde çalışacaktır. Bu ayar, uygulama kodu tarafından üretimde başarısız olacak bir şey yapma girişimlerini mümkün olduğunca erken yakalamanızı sağlar.

Not

Entity Framework Code First Migrations kullanıyorsanız 5.0 veya sonraki bir sürümün yüklü olduğundan emin olun. Entity Framework sürüm 4.3'te, veritabanı şemasını güncelleştirmek için geçişler tam güven gerektirir.

IIS ve Web Dağıtımı Yükleme

Geliştirme bilgisayarınızda IIS'ye dağıtmak için IIS ve Web Dağıtımı'nın yüklü olması gerekir. Bunlar varsayılan Windows 7 yapılandırmasına dahil değildir. Hem IIS hem de Web Dağıtımı'nı zaten yüklediyseniz, sonraki bölüme atlayın.

Web Platformu Yükleyicisi, IIS için önerilen bir yapılandırma yüklediğinden ve gerekirse IIS ve Web Dağıtımı önkoşullarını otomatik olarak yüklediğinden, IIS ve Web Dağıtımı'nı yüklemenin tercih edilen yolu Web Platformu Yükleyicisi'ni kullanmaktır.

IIS ve Web Dağıtımı'nı yüklemek üzere Web Platformu Yükleyicisi'ni çalıştırmak için aşağıdaki bağlantıyı kullanın. IIS, Web Dağıtımı veya gerekli bileşenlerinden herhangi birini zaten yüklediyseniz, Web Platformu Yükleyicisi yalnızca eksik olan bileşenleri yükler.

Varsayılan Uygulama Havuzunu .NET 4 olarak ayarlama

IIS'yi yükledikten sonra, .NET Framework sürüm 4'in varsayılan uygulama havuzuna atandığından emin olmak için IIS Yöneticisi'ni çalıştırın.

Windows Başlat menüsünde Çalıştır'ı seçin, "inetmgr" yazın ve Tamam'a tıklayın. (Başlat menünüzün içinde Çalıştır komutu yoksa, açmak için Windows Tuşu ve R tuşuna basabilirsiniz. Veya görev çubuğuna sağ tıklayın, Özellikler'e tıklayın, Başlat Menüsü sekmesini seçin, Özelleştir'e tıklayın ve Çalıştır komutu'na tıklayın.)

Connections bölmesinde sunucu düğümünü genişletin ve Uygulama Havuzları'nı seçin. Uygulama Havuzları bölmesinde, DefaultAppPool aşağıdaki çizimde olduğu gibi .NET framework sürüm 4'e atanmışsa sonraki bölüme atlayın.

Inetmgr_showing_4.0_app_pools

Yalnızca iki uygulama havuzu görürseniz ve her ikisi de .NET Framework 2.0 olarak ayarlandıysa, IIS'de ASP.NET 4'ü yüklemeniz gerekir:

  • Windows Başlat menüsünde Komut İstemi'ne sağ tıklayıp Yönetici Olarak Çalıştır'ı seçerek bir komut istemi penceresi açın. Ardından aşağıdaki komutları kullanarak IIS'de ASP.NET 4'ü yüklemek içinaspnet_regiis.exeçalıştırın. (64 bit sistemlerde "Framework" yerine "Framework64" yazın.)

    cd %windir%\Microsoft.NET\Framework\v4.0.30319
    aspnet_regiis.exe –iru
    

    aspnet_regiis_installing_ASP.NET_4

    Bu komut .NET Framework 4 için yeni uygulama havuzları oluşturur, ancak varsayılan uygulama havuzu yine de 2.0 olarak ayarlanır. .NET 4'i bu uygulama havuzuna hedefleyen bir uygulama dağıtacaksınız, bu nedenle uygulama havuzunu .NET 4 olarak değiştirmeniz gerekir.

IIS Yöneticisi'ni kapattıysanız yeniden çalıştırın, sunucu düğümünü genişletin ve Uygulama Havuzları'na tıklayarak Uygulama Havuzları bölmesini yeniden görüntüleyin.

Uygulama Havuzları bölmesinde DefaultAppPool'a tıklayın ve eylemler bölmesindeTemel Ayarlar'a tıklayın.

Inetmgr_selecting_Basic_Settings_for_app_pool

Uygulama Havuzunu Düzenle iletişim kutusunda, .NET Framework sürümünü.NET Framework v4.0.30319 olarak değiştirin ve Tamam'a tıklayın.

Selecting_.NET_4_for_DefaultAppPool

Artık IIS'de yayımlamaya hazırsınız.

IIS'de yayımlama

Visual Studio 2010 ve Web Dağıtımı kullanarak dağıtmanın birkaç yolu vardır:

  • Visual Studio tek tıklamayla yayımla'yı kullanın.
  • Bir dağıtım paketi oluşturun ve IIS Yöneticisi kullanıcı arabirimini kullanarak yükleyin. Dağıtım paketi, IIS'de bir siteyi yüklemek için gereken tüm dosyaları ve meta verileri içeren bir .zip dosyasından oluşur.
  • Bir dağıtım paketi oluşturun ve komut satırını kullanarak yükleyin.

Önceki öğreticilerde dağıtım görevlerini otomatikleştirmek için Visual Studio'yu ayarlamak için uyguladığınız işlem bu üç yöntemin tümü için geçerlidir. Bu öğreticilerde bu yöntemlerden ilkini kullanacaksınız. Dağıtım paketlerini kullanma hakkında bilgi için bkz . Dağıtım İçerik Eşlemesi ASP.NET.

Yayımlamadan önce Visual Studio'yu yönetici modunda çalıştırdığınızdan emin olun. (Windows 7 Başlat menüsünde, kullandığınız Visual Studio sürümünün simgesine sağ tıklayın ve Yönetici Olarak Çalıştır'ı seçin.) Yönetici modu yalnızca yerel bilgisayarda IIS'de yayımladığınızda yayımlama için gereklidir.

Çözüm Gezgini'da ContosoUniversity projesine (ContosoUniversity.DAL projesine değil) sağ tıklayın ve Yayımla'yı seçin.

Web'i Yayımla sihirbazı görüntülenir.

Publish_Web_wizard_Profile_tab

Açılan listede Yeni...>'yi seçin<.

Yeni Profil iletişim kutusuna "Test" yazın ve Tamam'a tıklayın.

New_Profile_dialog_box

Bu ad, daha önce oluşturduğunuz Web.Test.config dönüştürme dosyasının orta düğümüyle aynıdır. Bu profil kullanılarak yayımladığınızda Web.Test.config dönüşümlerinin uygulanmasına neden olan şey bu yazışmadır.

Sihirbaz otomatik olarak Bağlantı sekmesine ilerler.

Hizmet URL'si kutusuna localhost yazın.

Site/uygulama kutusuna Varsayılan Web Sitesi/ContosoUniversity girin.

Hedef URL kutusuna yazınhttp://localhost/ContosoUniversity.

Hedef URL ayarı gerekli değildir. Visual Studio uygulamayı dağıtmayı tamamladığında, varsayılan tarayıcınızı otomatik olarak bu URL'ye açar. Dağıtımdan sonra tarayıcının otomatik olarak açılmasını istemiyorsanız, bu kutuyu boş bırakın.

Publish_Web_wizard_Connection_tab_Test

Ayarların doğru olduğunu ve yerel bilgisayarda IIS'ye bağlanabildiğinizi doğrulamak için Bağlantıyı Doğrula'ya tıklayın.

Yeşil onay işareti, bağlantının başarılı olduğunu doğrular.

Publish_Web_wizard_Connection_tab_validated

Ayarlar sekmesine ilerlemek için İleri'ye tıklayın.

Yapılandırma açılan kutusu dağıtılacak derleme yapılandırmasını belirtir. Varsayılan değer, istediğiniz sürümdür.

Hedefte ek dosyaları kaldır onay kutusunu temiz bırakın. Bu ilk dağıtımınız olduğundan, hedef klasörde henüz hiç dosya olmayacaktır.

Veritabanları bölümünde SchoolContext için bağlantı dizesi kutusuna aşağıdaki değeri girin:

Data Source=|DataDirectory|School-Prod.sdf

Çalışma zamanında bu bağlantı dizesi kullan seçili olduğundan dağıtım işlemi bu bağlantı dizesi dağıtılan Web.config dosyasına yerleştirir.

Ayrıca SchoolContext'in altında Code First Migrations Uygula'yı seçin. Bu seçenek dağıtım işleminin dağıtılan Web.config dosyasını başlatıcıyı belirtecek şekilde yapılandırmasına MigrateDatabaseToLatestVersion neden olur. Bu başlatıcı, uygulama dağıtımdan sonra veritabanına ilk kez eriştiğinde veritabanını otomatik olarak en son sürüme güncelleştirir.

DefaultConnection için bağlantı dizesi kutusuna aşağıdaki değeri girin:

Data Source=|DataDirectory|aspnet-Prod.sdf

Veritabanını güncelleştir'i temiz bırakın. Üyelik veritabanı App_Data'da .sdf dosyası kopyalanarak dağıtılır ve dağıtım işleminin bu veritabanıyla başka bir şey yapmasını istemezsiniz.

Publish_Web_wizard_Settings_tab_Test

Önizleme sekmesine ilerlemek için İleri'ye tıklayın.

Kopyalanacak dosyaların listesini görmek için Önizleme sekmesinde Önizlemeyi Başlat'a tıklayın.

Publish_Web_wizard_Preview_tab_Test

Publish_Web_wizard_Preview_tab_Test_with_file_list

Yayımla’ya tıklayın.

Visual Studio yönetici modunda değilse, izin hatası belirten bir hata iletisi alabilirsiniz. Bu durumda Visual Studio'yu kapatın, yönetici modunda açın ve yayımlamayı yeniden deneyin.

Visual Studio yönetici modundaysa Çıkış penceresi başarılı derleme ve yayımlamayı bildirir.

Output_window_publish_Test

Tarayıcı, yerel bilgisayarda IIS'de çalışan Contoso Üniversitesi Giriş sayfasına otomatik olarak açılır.

Contoso Üniversitesi ortam göstergesinin Geliştirme yerine Test olduğunu gösteren Internet Explorer penceresinin ekran görüntüsü.

Test Ortamında Test Etme

Ortam göstergesinin "(Geliştirme)" yerine "(Test)" gösterdiğine ve bu da ortam göstergesi için Web.config dönüştürmenin başarılı olduğunu gösterdiğine dikkat edin.

Contoso Üniversitesi ortam göstergesinin Geliştirme yerine Test olduğunu gösteren Internet Explorer penceresinin ekran görüntüsü.

Dağıtılan veritabanında öğrenci olmadığını doğrulamak için Öğrenciler sayfasını çalıştırın. Bu sayfayı seçtiğinizde Code First veritabanını oluşturduğundan ve ardından yöntemini çalıştırdığından Seed yüklenmesi birkaç dakika sürebilir. (Uygulama henüz veritabanına erişmeye çalışmadığından giriş sayfasındayken bunu yapmadı.)

Students_page_Test

Code First'ın veritabanını eğitmen verileriyle dağıttığını doğrulamak için Eğitmenler sayfasını çalıştırın:

Instructors_page_Test

Öğrenciler menüsünden Öğrenci Ekle'yi seçin, öğrenci ekleyin ve ardından veritabanına başarıyla yazabildiğinizi doğrulamak için Öğrenciler sayfasında yeni öğrenciyi görüntüleyin:

Add_Students_page_Test

Students_page_with_new_student_Test

Kurslarmenüsünden Kredileri Güncelleştir'i seçin. Kredileri Güncelleştir sayfası yönetici izinleri gerektirdiğinden Oturum Aç sayfası görüntülenir. Daha önce oluşturduğunuz yönetici hesabı kimlik bilgilerini ("admin" ve "Pas$w0rd") girin. Önceki öğreticide oluşturduğunuz yönetici hesabının test ortamına doğru dağıtıldığını doğrulayan Kredileri Güncelleştir sayfası görüntülenir.

Log_In_page_Test

Update_Credits_page_Test

Elmah klasörünün var olduğunu ve içinde yalnızca yer tutucu dosyanın bulunduğunu doğrulayın.

Elmah_folder_Test

Code First Migrations için Otomatik Web.config Değişikliklerini Gözden Geçirme

Dağıtılan uygulamada Web.config dosyasını C:\inetpub\wwwroot\ContosoUniversity konumunda açın; dağıtım işleminin veritabanını otomatik olarak en son sürüme güncelleştirmek için Code First Migrations yapılandırdığı yeri görebilirsiniz.

Dağıtım işleminin veritabanını otomatik olarak en son sürüme güncelleştirmek için Code First Migrations yapılandırıldığı yeri vurgulayan ekran görüntüsü.

Dağıtım işlemi ayrıca, Code First Migrations yalnızca veritabanı şemasını güncelleştirmek için kullanması için yeni bir bağlantı dizesi oluşturmuştur:

DatabasePublish_connection_string

Bu ek bağlantı dizesi, veritabanı şeması güncelleştirmeleri için bir kullanıcı hesabı ve uygulama veri erişimi için farklı bir kullanıcı hesabı belirtmenizi sağlar. Örneğin, db_owner rolünü Code First Migrations ve db_datareader ve db_datawriter rollerini uygulamaya atayabilirsiniz. Bu, uygulamadaki kötü amaçlı olabilecek kodların veritabanı şemasını değiştirmesini engelleyen yaygın bir derinlemesine savunma düzenidir. (Örneğin, bu başarılı bir SQL ekleme saldırısında gerçekleşebilir.) Bu düzen bu öğreticiler tarafından kullanılmaz. SQL Server Compact için geçerli değildir ve bu serinin sonraki öğreticilerinde SQL Server geçiş yaptığınızda geçerli değildir. Cytanium sitesi, Cytanium'da oluşturduğunuz SQL Server veritabanına erişmek için yalnızca bir kullanıcı hesabı sunar. Bu düzeni senaryonuzda uygulayabiliyorsanız, aşağıdaki adımları uygulayarak bunu yapabilirsiniz:

  1. Web'i Yayımla sihirbazının Ayarlar sekmesinde, tam veritabanı şeması güncelleştirme izinlerine sahip bir kullanıcıyı belirten bağlantı dizesi girin ve Bu bağlantı dizesi çalışma zamanında kullan onay kutusunu temizleyin. Dağıtılan Web.config dosyasında bu, bağlantı dizesi olur DatabasePublish .
  2. Uygulamanın çalışma zamanında kullanmasını istediğiniz bağlantı dizesi için Web.config bir dosya dönüşümü oluşturun.

Uygulamanızı geliştirme bilgisayarınızdaki IIS'ye dağıttınız ve burada test ettiniz. Bu, dağıtım işleminin uygulamanın içeriğini doğru konuma (dağıtmak istemediğiniz dosyalar hariç) ve ayrıca Web Dağıtımı'nın dağıtım sırasında IIS'yi doğru yapılandırdığını doğrular. Sonraki öğreticide, henüz yapılmamış bir dağıtım görevi bulan bir test daha çalıştıracaksınız: Elmah klasöründe klasör izinlerini ayarlama.

Daha Fazla Bilgi

Visual Studio'da IIS veya IIS Express çalıştırma hakkında bilgi için aşağıdaki kaynaklara bakın: