Visual Studio kullanarak Web Dağıtımı ASP.NET: Teste Dağıtma

tarafından Tom Dykstra

Bu öğretici serisi, Visual Studio 2017 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. Seri hakkında bilgi için serideki ilk öğreticiye bakın.

Azure'a dağıtımın geçerli bir sürümü için bkz. Azure'da ASP.NET Core web uygulaması oluşturma.

Genel Bakış

Bu öğreticide, yerel bilgisayarınızdaki Internet Information Server'a (IIS) bir ASP.NET web uygulaması dağıtacaksınız.

Genellikle bir uygulama geliştirirken uygulamayı çalıştırır ve Visual Studio'da test edersiniz. Varsayılan olarak, Visual Studio 2017'deki web uygulaması projeleri geliştirme web sunucusu olarak IIS Express kullanır. IIS Express, Visual Studio 2017'nin varsayılan olarak kullandığı Visual Studio Geliştirme Sunucusu'na (Cassini olarak da bilinir) göre tam IIS gibi davranır. Ancak geliştirme web sunucusu da tam olarak IIS gibi çalışmaz. Sonuç olarak, bir uygulama Visual Studio'da doğru şekilde çalışabilir ve test edebilir ancak IIS'ye dağıtıldığında başarısız olur.

Uygulamanızı iki şekilde güvenilir bir şekilde test edebilirsiniz:

  1. Uygulamanızı daha sonra üretim ortamınıza dağıtmak için kullanacağınız işlemi kullanarak geliştirme bilgisayarınızda IIS'ye dağıtın.

    Bir web projesi çalıştırdığınızda Visual Studio'yu IIS kullanacak şekilde yapılandırabilirsiniz, ancak bu dağıtım işleminizi test etmez. Bu yöntem, dağıtım işleminizi ve uygulamanızın IIS altında doğru şekilde çalıştığını doğrular.

  2. Uygulamanızı üretim ortamınıza benzer bir test ortamına dağıtın.

    Bu öğreticiler için üretim ortamı Azure App Service'da Web Apps. İdeal test ortamı, Azure Hizmeti'nde oluşturulan ek bir web uygulamasıdır. Üretim web uygulamasıyla aynı şekilde ayarlansa da, bunu yalnızca test için kullanabilirsiniz.

2. Seçenek, test etmenin en güvenilir yoludur. 2. seçeneği kullanıyorsanız 1. seçeneği kullanmanız gerekmez. Ancak üçüncü taraf barındırma sağlayıcısına dağıtım yapıyorsanız, 2. seçenek uygun olmayabilir veya pahalı olabilir, bu nedenle bu öğretici serisi her iki yöntemi de gösterir. 2. seçenek için yönergeler , Üretim Ortamına Dağıtma öğreticisinde sağlanır.

Visual Studio'da web sunucularını kullanma hakkında daha fazla bilgi için bkz. ASP.NET Web Projeleri için Visual Studio'da Web Sunucuları.

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

Contoso University başlangıç projesini indirme

Contoso University Visual Studio başlangıç çözümünü ve projesini indirip yükleyin. Bu çözüm tamamlanmış öğreticiyi içerir.

Başlangıç Projelerini İndir

IIS yükleme

Geliştirme bilgisayarınızda IIS'ye dağıtmak için IIS ve Web Dağıtımı'nın yüklü olduğunu onaylayın. Varsayılan olarak, Visual Studio Web Dağıtımı'nı yükler, ancak IIS varsayılan Windows 10, Windows 8 veya Windows 7 yapılandırmasına dahil değildir. IIS'yi zaten yüklediyseniz ve varsayılan uygulama havuzu zaten .NET 4 olarak ayarlandıysa sonraki bölüme geçin.

  1. IIS ve Web Dağıtımı'nı yüklemek için Web Platformu Yükleyicisi'ni (WPI) kullanmanız önerilir. WPI, gerekirse IIS ve Web Dağıtımı önkoşullarını içeren önerilen bir IIS yapılandırması yükler.

    IIS, Web Dağıtımı veya gerekli bileşenlerinden herhangi birini zaten yüklediyseniz, WPI yalnızca eksik olan bileşenleri yükler.

    • IIS ve Web Dağıtımı'nı yüklemek için Web Platformu Yükleyicisi'ni kullanın:

      WPI kullanarak IIS yükleme

      WPI kullanarak Web Dağıtımı yükleme

      IIS 7'nin yükleneceğini belirten iletiler görürsünüz. Bağlantı, Windows 8 iis 8 için çalışır; ancak Windows 8 ve sonraki sürümler için ASP.NET 4.7'nin yüklendiğinden emin olmak için aşağıdaki adımları izleyin:

    • Denetim Masası>Programlar>Programlar ve Özellikler'i>açın Windows özelliklerini açın veya kapatın.

    • Internet Information Services, World Wide Web Services ve Uygulama Geliştirme Özellikleri'ni genişletin.

    • ASP.NET 4.7'nin seçili olduğunu onaylayın.

      ASP.NET 4.7'yi seçin

    • World Wide Web Services ve IIS Yönetim Konsolu'nu seçtiğinizden emin olun. Bu, IIS ve IIS Yöneticisi'ni yükler.

      World Wide Web Services'ı seçin

    • Tamam’ı seçin. Yüklemenin gerçekleştiğini belirten iletişim kutusu iletileri görüntülenir.

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.

  1. Çalıştır iletişim kutusunu açmak için WINDOWS+R tuşlarına basın.

    (Windows 8 veya sonraki sürümlerde Başlangıç sayfasına "çalıştır" yazın. Windows 7'de Başlat menüsünde Çalıştır'ı seçin. Başlat menüsünde Çalıştır yoksa görev çubuğuna sağ tıklayın, Özellikler'i seçin, Başlat Menüsü sekmesini seçin, Özelleştir'i seçin ve Çalıştır komutu'na tıklayın.)

  2. "inetmgr" yazın ve Tamam'ı seçin.

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

    Inetmgr_showing_4.0_app_pools

  4. Yalnızca iki uygulama havuzu görüyorsanız ve her ikisi de .NET Framework 2.0 olarak ayarlandıysa IIS'de ASP.NET 4'ü yükleyin.

    Windows 8 veya üzeri için, ASP.NET 4.7'nin yüklendiğinden emin olmak için önceki bölümün yönergelerine bakın veya Windows 8 ve Windows Server 2012'a ASP.NET 4.5'i yükleme konusuna bakın. Windows 7 için, 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. Aşağıdaki komutları kullanarak IIS'de ASP.NET 4'ü yüklemek için aspnet_regiis.exe çalıştırın. (32 bit sistemlerde "Framework64" yerine "Framework" yazın.)

    cd %windir%\Microsoft.NET\Framework64\v4.0.30319
    aspnet_regiis.exe –i
    

    Bu komut .NET Framework 4 için yeni uygulama havuzları oluşturur, ancak varsayılan uygulama havuzu 2.0 olarak kalır. .NET 4'i bu uygulama havuzuna hedefleyen bir uygulama dağıtıyorsunuz, bu nedenle uygulama havuzunu .NET 4 olarak değiştirin.

  5. IIS Yöneticisi'ni kapattıysanız yeniden çalıştırın, sunucu düğümünü genişletin ve Uygulama Havuzları'nı seçin.

  6. Uygulama Havuzları bölmesinde DefaultAppPool'u seçin. Eylemler bölmesinde Temel Ayarlar'ı seçin.

    Inetmgr_selecting_Basic_Settings_for_app_pool

  7. Uygulama Havuzunu Düzenle iletişim kutusunda.NET CLR sürümünü.NET CLR v4.0.30319 olarak değiştirin. Tamam’ı seçin.

    Selecting_.NET_4_for_DefaultAppPool

Artık bir web uygulamasını IIS'de yayımlamaya hazırsınız. Ancak ilk olarak test için veritabanları oluşturun.

SQL Server Express yükleme

LocalDB IIS'de çalışacak şekilde tasarlanmamıştır, bu nedenle test ortamınızda SQL Server Express yüklü olmalıdır. Visual Studio 2010 SQL Server Express kullanıyorsanız, varsayılan olarak zaten yüklüdür. Visual Studio 2012 veya sonraki bir sürümünü kullanıyorsanız SQL Server Express yükleyin.

SQL Server Express yüklemek için İndirme Merkezi: Microsoft SQL Server 2017 Express sürümünden indirip yükleyin.

SQL Server Yükleme Merkezi'nin ilk sayfasında Yeni SQL Server tek başına yükleme'yi seçin veya var olan bir yüklemeye özellikler ekleyin ve varsayılan seçenekleri kabul eden yönergeleri izleyin. Yükleme sihirbazında varsayılan ayarları kabul edin. Yükleme seçenekleri hakkında daha fazla bilgi için bkz. Yükleme Sihirbazı'ndan (Kurulum) SQL Server yükleme.

Test ortamı için SQL Server Express veritabanları oluşturma

Contoso University uygulamasının iki veritabanı vardır:

  1. Üyelik veritabanı
  2. Uygulama veritabanı

Bu veritabanlarını iki ayrı veritabanına veya tek bir veritabanına dağıtabilirsiniz. Bunları birleştirmek, veritabanı birleştirmelerini daha kolay hale getirir.

Bir üçüncü taraf barındırma sağlayıcısına dağıtım yapıyorsanız, barındırma planınız bunları birleştirmek için size bir neden de verebilir. Örneğin, sağlayıcı birden çok veritabanı için daha fazla ücret alabilir veya birden fazla veritabanına izin vermeyebilir.

Bu öğreticide, test ortamındaki iki veritabanına ve hazırlama ve üretim ortamlarındaki bir veritabanına dağıtacaksınız.

Visual Studio'daki Görünümmenüsünden Sunucu Gezgini (Visual Web Developer'da Veritabanı Gezgini ) öğesini seçin. Veri Connections'ne sağ tıklayın ve Yeni SQL Server Veritabanı Oluştur'u seçin.

Selecting_Create_New_SQL_Server_Database

Yeni SQL Server Veritabanı Oluştur iletişim kutusunda, Sunucu adı kutusuna ".\SQLExpress" ve Yeni veritabanı adı kutusuna "aspnet-ContosoUniversity" yazın. Tamam’ı seçin.

aspnet-ContosoUniversity oluşturma

adlı ContosoUniversityyeni bir SQL Server Express School veritabanı oluşturmak için aynı yordamı izleyin.

Sunucu Gezgini iki yeni veritabanını gösterir.

Sunucu Gezgini'ndeki yeni veritabanları

Yeni veritabanları için bir verme betiği oluşturma

Uygulama geliştirme bilgisayarınızda IIS'de çalıştığında, uygulamaya erişmek için varsayılan uygulama havuzunun kimlik bilgilerini kullanır. Ancak, varsayılan olarak uygulama havuzunun veritabanlarını açma izni yoktur. Bu, bu izni vermek için bir betik çalıştırmanız gerektiği anlamına gelir. Bu bölümde, bu betiği oluşturacak ve daha sonra çalıştırarak uygulamanın IIS'de çalıştırıldığında veritabanlarını açadığından emin olacaksınız.

Bir metin düzenleyicisinde, aşağıdaki SQL komutlarını yeni bir dosyaya kopyalayın ve Grant.sql olarak kaydedin.

IF NOT EXISTS (SELECT name FROM sys.server_principals WHERE name = 'IIS APPPOOL\DefaultAppPool')
BEGIN
    CREATE LOGIN [IIS APPPOOL\DefaultAppPool] 
      FROM WINDOWS WITH DEFAULT_DATABASE=[master], 
      DEFAULT_LANGUAGE=[us_english]
END
GO
CREATE USER [ContosoUniversityUser] 
  FOR LOGIN [IIS APPPOOL\DefaultAppPool]
GO
EXEC sp_addrolemember 'db_owner', 'ContosoUniversityUser'
GO

Visual Studio'da Contoso University çözümünü açın. Çözüme (projelerden birine değil) sağ tıklayın ve Ekle'yi seçin. Mevcut Öğe'yi seçin, Grant.sql gidin ve öğeyi açın.

Not

Bu betik, SQL Server Express 2012 veya sonraki sürümleriyle ve bu öğreticide belirtildiği gibi Windows 10, Windows 8 veya Windows 7'deki IIS ayarlarıyla çalışacak şekilde tasarlanmıştır. SQL Server veya Windows'un farklı bir sürümünü kullanıyorsanız veya bilgisayarınızda IIS'yi farklı bir şekilde ayarladıysanız, bu betikte değişiklik yapılması gerekebilir. SQL Server betikler hakkında daha fazla bilgi için bkz. Çevrimiçi Kitaplar SQL Server.

Not

Güvenlik Notu Bu betik, kullanıcıya çalışma zamanında veritabanına erişen izinler verir db_owner . Bu, üretim ortamında sahip olduğunuz izindir. Bazı senaryolarda, yalnızca dağıtım için tam veritabanı şeması güncelleştirme izinlerine sahip bir kullanıcı belirtmek ve çalışma zamanı için yalnızca veri okuma ve yazma izinleri olan farklı bir kullanıcı belirtmek isteyebilirsiniz. Daha fazla bilgi için bu öğreticinin devamında Code First Migrations için Otomatik Web.config Değişikliklerini Gözden Geçirme bölümüne bakın.

Uygulama veritabanında verme betiğini çalıştırma

Yayımlama profilini, veritabanı dağıtımı dbDacFx sağlayıcısını kullandığından, dağıtım sırasında üyelik veritabanında verme betiğini çalıştıracak şekilde yapılandırabilirsiniz. Code First Migrations dağıtımı sırasında betik çalıştıramazsınız; uygulama veritabanını bu şekilde dağıtırsınız. Bu, uygulama veritabanında dağıtımdan önce betiği el ile çalıştırmanız gereken anlamına gelir.

  1. Visual Studio'da daha önce oluşturduğunuz Grant.sql dosyasını açın.

  2. Bağlan’ı seçin.

    Bağlan düğmesi

  3. Sunucuya Bağlan iletişim kutusunda Sunucu Adı olarak .\SQLExpress yazın. Bağlan’ı seçin.

  4. Veritabanı açılan listesinde ContosoUniversity'yi seçin. Yürüt’ü seçin.

    Veritabanı açılan listesinde ContosoUniversity'yi seçin. Yürüt'e tıklayın.

Varsayılan uygulama havuzu kimliği artık uygulama veritabanında, uygulama çalıştırıldığında veritabanı tablolarını oluşturmak için Code First Migrations için yeterli izinlere sahip.

IIS'de yayımlama

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

  • Visual Studio tek tıklamayla yayımla'yı kullanın.
  • Komut satırından yayımlayın.
  • Bir dağıtım paketi oluşturun ve IIS Yöneticisi'ni kullanarak yükleyin. Paketin, IIS'de site yüklemek için gereken tüm dosyaları ve meta verileri içeren bir .zip dosyası vardır.
  • 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öntemlerin tümü için geçerlidir. Bu öğreticilerde ilk iki yöntemi kullanacaksınız. Dağıtım paketlerini kullanma hakkında bilgi için bkz. Visual Studio ve ASP.NET için Web Dağıtımı İçerik Eşlemesi'nde web dağıtım paketi oluşturup yükleyerek web uygulaması dağıtma .

Yayımlamadan önce Visual Studio'yu yönetici modunda çalıştırdığınızdan emin olun. Başlık çubuğunda (Yönetici) seçeneğini görmüyorsanız Visual Studio'yu kapatın. Windows 8 (veya üzeri) Başlangıç sayfasında veya Windows 7 Başlat menüsünde Visual Studio simgesine sağ tıklayın ve Yönetici Olarak Çalıştır'ı seçin. Yönetici modu yalnızca yerel bilgisayarda IIS'de yayımlarken yayımlama için gereklidir.

Yayımlama profilini oluşturma

  1. Çözüm Gezgini'daContosoUniversity projesine (ContosoUniversity.DAL projesine değil) sağ tıklayın. Yayımla’yı seçin. Yayımla sayfası görüntülenir.

  2. Yeni Profil'i seçin. Yayımlama hedefi seçin iletişim kutusu görüntülenir.

  3. IIS, FTP vb. öğesini seçin. Profil Oluştur'u seçin. Yayımla sihirbazı görüntülenir.

    Web'de Yayımla sihirbazı Profil sekmesi

  4. Yayımlama yöntemi açılan menüsünde Web Dağıtımı'nı seçin.

  5. Sunucu alanına localhost girin.

  6. Site adı için Varsayılan Web Sitesi/ContosoUniversity girin.

  7. Hedef URL'si için girinhttp://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.

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

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

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

  9. Ayarlar sekmesine ilerlemek için İleri'yi seçin.

  10. Yapılandırma açılan kutusu dağıtılacak derleme yapılandırmasını belirtir. Yayın'ın varsayılan değerine ayarlanmış olarak bırakın. Bu öğreticide Hata Ayıklama derlemeleri dağıtmayacaksınız.

  11. Dosya Yayımlama Seçenekleri'ni genişletin. dosyaları App_Data klasöründen dışla'yı seçin.

    Test ortamında uygulama, App_Data klasöründeki .mdf dosyalarına değil, yerel SQL Server Express örneğinde oluşturduğunuz veritabanlarına erişir.

  12. Yayımlama sırasında Ön Derleme ve Hedefte ek dosyaları kaldır onay kutularının işaretini kaldırın.

    Ayarlar sekmesindeki Dosya Yayımlama Seçenekleri

    Önceden derleme, çoğunlukla büyük siteler için yararlı olan bir seçenektir. Site yayımlandıktan sonra sayfanın ilk istenişinde başlangıç süresini kısaltabilir.

    Bu ilk dağıtımınız olduğundan ve henüz hedef klasörde herhangi bir dosya olmayacağından ek dosyaları kaldırmanız gerekmez.

    Not

    Aynı siteye sonraki bir dağıtım için Hedefte ek dosyaları kaldır'ı seçerseniz, dağıtmadan önce hangi dosyaların silineceğini önceden görmek için önizleme özelliğini kullandığınızdan emin olun. Beklenen davranış, Web Dağıtımı'nın projenizde sildiğiniz hedef sunucudaki dosyaları silmesidir. Ancak, kaynak ve hedef klasörlerin altındaki klasör yapısının tamamı karşılaştırılır; ve bazı senaryolarda, Web Dağıtımı silmek istemediğiniz dosyaları silebilir.

    Örneğin, kök klasöre bir proje dağıttığınızda sunucudaki bir alt klasörde bir web uygulamanız varsa, alt klasör silinir. contoso.com'da ana site için bir projeniz ve contoso.com/blog'daki bir blog için başka bir projeniz olabilir. Blog uygulaması bir alt klasörde yer alır. Ana siteyi dağıtırken Hedefte ek dosyaları kaldır'ı seçerseniz blog uygulaması silinir.

    Başka bir örnek için App_Data klasörünüz beklenmedik bir şekilde silinebilir. SQL Server Compact gibi bazı veritabanları, veritabanı dosyalarını App_Data klasöründe depolar. İlk dağıtımdan sonra, sonraki dağıtımlarda veritabanı dosyalarını kopyalamaya devam etmek istemezsiniz, bu nedenle Paketle/Yayımla Web sekmesinde App_Data Dışla'yı seçersiniz. Bunu yaptıktan sonra Hedefte ek dosyaları kaldır seçiliyse, veritabanı dosyalarınız ve App_Data klasörünün kendisi bir sonraki yayımlayışınızda silinir.

Üyelik veritabanı için dağıtımı yapılandırma

Aşağıdaki adımlar, iletişim kutusunun Veritabanları bölümündeki DefaultConnection veritabanına uygulanır.

  1. Uzak bağlantı dizesi kutusuna, yeni SQL Server Express üyelik veritabanına işaret eden aşağıdaki bağlantı dizesi girin.

    Data Source=.\SQLExpress;Initial Catalog=aspnet-ContosoUniversity;Integrated Security=True
    

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

    Bağlantı dizesi Sunucu Gezgini'nden de alabilirsiniz. Sunucu Gezgini'ndeVeri Connections'ni genişletin ve machinename>\sqlexpress.aspnet-ContosoUniversity veritabanını seçin<, ardından Özelliklerpenceresinden Bağlantı Dizesi değerini kopyalayın. Bu bağlantı dizesi silebileceğiniz bir ayar daha vardır: Pooling=False.

  2. Veritabanını güncelleştir'i seçin.

    Bu, veritabanı şemasının dağıtım sırasında hedef veritabanında oluşturulmasına neden olur. Sonraki adımlarda, çalıştırmanız gereken ek betikleri belirtirsiniz: biri varsayılan uygulama havuzuna veritabanı erişimi vermek ve diğeri de verileri dağıtmak için.

  3. Veritabanı güncelleştirmelerini yapılandır'ı seçin.

  4. Veritabanı Güncelleştirmeler Yapılandır iletişim kutusunda SQL Betiği Ekle'yi seçin. Çözüm klasöründe daha önce kaydettiğiniz Grant.sql betiğine gidin.

  5. aspnet-data-dev.sql betiğini eklemek için işlemi yineleyin.

    Üyelik veritabanı için Veritabanı Güncelleştirmeler yapılandırma

  6. Kapat’ı seçin.

Uygulama veritabanı için dağıtımı yapılandırma

Visual Studio bir Entity Framework DbContext sınıfı algıladığında, Veritabanları bölümünde Veritabanını Güncelleştir onay kutusu yerine Code First Migrations Yürüt onay kutusu olan bir girdi oluşturur. Bu öğreticide, Code First Migrations dağıtımı belirtmek için bu onay kutusunu kullanacaksınız.

Bazı senaryolarda veritabanı DbContext kullanıyor olabilirsiniz ancak veritabanını dağıtmak için Geçişler yerine dbDacFx sağlayıcısını kullanmak isteyebilirsiniz. Bu durumda MSDN'deki ASP.NET Web Dağıtımı SSS bölümündeki Migrations olmadan Code First veritabanını Nasıl yaparım? dağıtma konusuna bakın.

Aşağıdaki adımlar, iletişim kutusunun Veritabanları bölümündeki SchoolContext veritabanına uygulanır.

  1. Uzak bağlantı dizesi kutusuna, yeni SQL Server Express uygulama veritabanına işaret eden aşağıdaki bağlantı dizesi girin.

    Data Source=.\SQLExpress;Initial Catalog=ContosoUniversity;Integrated Security=True
    

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

    Uygulama veritabanı bağlantı dizesi, üyelik veritabanı bağlantı dizesi edindiğiniz gibi Sunucu Gezgini'nden de alabilirsiniz.

  2. yürütme Code First Migrations (uygulama başlangıcında çalışır) öğesini 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.

Yayımlama profili dönüşümlerini yapılandırma

  1. Kapat’ı seçin. Değişiklikleri kaydetmek isteyip istemediğiniz sorulduğunda Evet'i seçin.

  2. Çözüm GezginiÖzellikler'i genişletin, PublishProfiles'ı genişletin.

  3. CustomProfile.pubxml'ye sağ tıklayın ve Test.pubxml olarak yeniden adlandırın.

  4. Test.pubxml'ye sağ tıklayın. Yapılandırma Dönüşümü Ekle'yi seçin.

    Yapılandırma Dönüşümü Ekle menüsü

    Visual Studio ,Web.Test.config dönüştürme dosyasını oluşturur ve açar.

  5. Web.Test.config dönüştürme dosyasına, yapılandırma etiketini açtıktan hemen sonra aşağıdaki kodu ekleyin.

    <appSettings>
        <add key="Environment" value="Test" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
    </appSettings>
    

    Test yayımlama profilini kullandığınızda, bu dönüşüm ortam göstergesini "Test" olarak ayarlar. Dağıtılan sitede "Contoso Üniversitesi" H1 başlığından sonra "(Test)" ifadesini görürsünüz.

  6. Dosyayı kaydedin ve kapatın.

  7. Web.Test.config dosyasına sağ tıklayın ve kodladığınız dönüşümün beklenen değişiklikleri ürettiğinden emin olmak için Dönüştürmeyi Önizle'yi seçin.

    Web.config Önizleme penceresi hem Web.Release.config dönüşümlerinin hem de Web.Test.config dönüşümlerinin uygulanmasının sonucunu gösterir.

Dağıtım güncelleştirmelerini önizleme

  1. Web'i Yayımla sihirbazını yeniden açın (ContosoUniversity projesine sağ tıklayın, Yayımla'yı ve ardından Önizleme'yi seçin).

  2. Kopyalanacak dosyaların listesini görmek için Önizlemeyi Başlat iletişim kutusunda Önizlemeyi Başlat'ı seçin.

    Önizlemeyi Yayımla

    Üyelik veritabanında çalıştırılacak betikleri görmek için Önizleme veritabanı bağlantısını da seçebilirsiniz. (Code First Migrations dağıtımı için betik çalıştırılır, bu nedenle uygulama veritabanı için ön izleme için hiçbir şey yoktur.)

  3. Yayımla’yı seçin.

    Visual Studio yönetici modunda değilse bir izin 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

    URL'yi yayımlama profili Bağlantı sekmesindeki Hedef URL kutusuna girdiyseniz, tarayıcı otomatik olarak bilgisayarınızda IIS'de çalışan Contoso Üniversitesi Giriş sayfasına açılır.

Test ortamında test etme

Ortam göstergesinin ortam göstergesi için Web.config dönüşümün başarılı olduğunu gösteren "(Geliştirme)" yerine "(Test)" gösterildiğine dikkat edin.

Code First'un veritabanını eğitmen verileriyle dağıttığını doğrulamak için Eğitmenler 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şmeyi denemediği için giriş sayfasındayken bunu yapmadı.)

Dağıtılan veritabanında öğrenci olmadığını doğrulamak için Öğrenciler sekmesini seçin.

Öğrenciler menüsünden Öğrenci Ekle'yi seçin. Öğrenci ekleyin ve öğrenciler sayfasında yeni öğrenciyi görüntüleyin. Bu, veritabanına başarıyla yazabileceğinizi doğrular.

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 "devpwd") girin. Kredileri Güncelleştir sayfası görüntülenir. Bu, önceki öğreticide oluşturduğunuz yönetici hesabının test ortamına doğru dağıtıldığını doğrular.

c:\inetpub\wwwroot\ContosoUniversity klasöründe yalnızca yer tutucu dosyasının bulunduğu bir ELMAH klasörünün mevcut olduğunu doğrulayın.

Code First Migrations için otomatik Web.config değişikliklerini gözden geçirin

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ırıldığı yeri görebilirsiniz.

Dağıtılan uygulamada Web.config dosyasını C:\inetpub\wwwroot\ContosoUniversity konumunda açın ve 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 görün.

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

Database_Publish bağlantı dizesi

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ı belirtmenize olanak tanır. Örneğin, db_owner rolünü Code First Migrations ve uygulamaya db_datawriter rollerle db_datareader 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 öğreticiler bu düzeni kullanmaz. Bu düzeni senaryonuzda uygulamak için şu adımları uygulayın:

  1. Web'i Yayımla sihirbazında Ayarlar sekmesinin altında, tam veritabanı şeması güncelleştirme izinlerine sahip bir kullanıcıyı belirten bağlantı dizesi girin. 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.

Özet

Uygulamanızı geliştirme bilgisayarınızdaki IIS'ye dağıttınız ve burada test ettiniz.

Testte giriş sayfası

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: Elm ah 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: