Visual Studio kullanarak Web Dağıtımı ASP.NET: Teste Dağıtma
tarafından Tom Dykstra
Bu öğretici serisi, ASP.NET bir web uygulamasını Azure Uygulaması Service Web Apps'e veya Visual Studio 2017 kullanarak üçüncü taraf barındırma sağlayıcısına dağıtmayı (yayımlamayı) gösterir. Seri hakkında bilgi için serinin ilk öğreticisine bakın.
Azure'a dağıtmanı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) ASP.NET bir 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 her iki geliştirme web sunucusu da iis gibi çalışmaz. Sonuç olarak, bir uygulama Visual Studio'da doğru şekilde çalıştırılabilir ve test edebilir ancak IIS'ye dağıtıldığında başarısız olur.
Uygulamanızı iki yolla güvenilir bir şekilde test edebilirsiniz:
Uygulamanızı daha sonra üretim ortamınıza dağıtmak için kullanacağınız işlemi kullanarak geliştirme bilgisayarınızdaki 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.
Uygulamanızı üretim ortamınıza benzer bir test ortamına dağıtın.
Bu öğreticilerin üretim ortamı, Azure Uygulaması Hizmeti'ndeki Web Apps'tir. İdeal test ortamı, Azure Hizmeti'nde oluşturulan ek bir web uygulamasıdır. Üretim web uygulamasıyla aynı şekilde ayarlanmış olsa da, bunu yalnızca test için kullanırsınız.
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ı: Öğretici boyunca bir hata iletisi alırsanız veya bir şey çalışmıyorsa sorun giderme sayfasını kontrol edin.
Contoso University başlangıç projesini indirin
Contoso University Visual Studio başlangıç çözümünü ve projesini indirip yükleyin. Bu çözüm tamamlanmış öğreticiyi içerir.
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.
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:
IIS 7'nin yükleneceğini belirten iletiler görürsünüz. Bağlantı Windows 8'de IIS 8 için çalışır; ancak Windows 8 ve sonraki sürümlerde, ASP.NET 4.7'nin yüklü olduğundan emin olmak için aşağıdaki adımları izleyin:
Denetim Masası> Programs>Programlar ve Özellikler'i>açın Windows özelliklerini açın veya kapatın.
Internet Information Services, World Wide Web Services ve Application Development Features'ı genişletin.
ASP.NET 4.7'nin seçili olduğunu onaylayın.
World Wide Web Services ve IIS Yönetim Konsolu'nu seçtiğinizden emin olun. Bu, IIS ve IIS Yöneticisi'ni yükler.
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'ün varsayılan uygulama havuzuna atandığından emin olmak için IIS Yöneticisi'ni çalıştırın.
Ç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ı. 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 komutunu seçin.)
"inetmgr" yazın ve Tamam'ı seçin.
Bağlantılar 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.
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ükleyin.
Windows 8 veya sonraki sürümler için, ASP.NET 4.7'nin yüklü olduğundan emin olmak için önceki bölümün yönergelerine bakın veya Windows 8 ve Windows Server 2012'de 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.
IIS Yöneticisi'ni kapattıysanız yeniden çalıştırın, sunucu düğümünü genişletin ve Uygulama Havuzları'nı seçin.
Uygulama Havuzları bölmesinde DefaultAppPool'u seçin. Eylemler bölmesinde Temel Ayarlar'ı seçin.
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.
Artık IIS'de bir web uygulaması yayımlamaya hazırsınız. Ancak ilk olarak test için veritabanları oluşturun.
SQL Server Express'i 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'i yükleyin.
SQL Server Express'i yüklemek için İndirme Merkezi' nden indirin ve yükleyin: Microsoft SQL Server 2017 Express sürümü.
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:
- Üyelik veritabanı
- Uygulama veritabanı
Bu veritabanlarını iki ayrı veritabanına veya tek bir veritabanına dağıtabilirsiniz. Bunları birleştirmek, aralarındaki veritabanı birleştirmelerini kolaylaştırır.
Üçü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üm menüsünden Sunucu Gezgini (Visual Web Geliştiricisi'nde Veritabanı Gezgini) öğesini seçin. Veri Bağlantıları'nı sağ tıklatın ve Yeni SQL Server Veritabanı Oluştur'u seçin.
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.
adlı ContosoUniversity
yeni bir SQL Server Express School veritabanı oluşturmak için aynı yordamı izleyin.
Sunucu Gezgini iki yeni veritabanını gösterir.
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. Var Olan Öğe'yi seçin, Grant.sql gidin ve 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 betikleri hakkında daha fazla bilgi için bkz . SQL Server Books Online.
Not
Güvenlik Notu Bu betik, çalışma zamanında veritabanına erişen kullanıcıya izin 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 izinlerine sahip farklı bir kullanıcı belirtmek isteyebilirsiniz. Daha fazla bilgi için bu öğreticinin devamında Yer alan Code First Migrations için Otomatik Web.config Değişikliklerini Gözden Geçirme bölümüne bakın.
Uygulama veritabanında grant betiğini çalıştırma
Veritabanı dağıtımı dbDacFx sağlayıcısını kullandığından, yayımlama profilini dağıtım sırasında üyelik veritabanında verme betiğini çalıştıracak şekilde yapılandırabilirsiniz. Kod İlk Geçişleri dağıtımı sırasında betikleri çalıştıramazsınız. Bu, uygulama veritabanını nasıl dağıttığınızı gösterir. Başka bir deyişle, uygulama veritabanında dağıtımdan önce betiği el ile çalıştırmanız gerekir.
Visual Studio'da, daha önce oluşturduğunuz Grant.sql dosyasını açın.
Bağlan'ı seçin.
Sunucuya Bağlan iletişim kutusunda Sunucu Adı olarak .\SQLExpress yazın. Bağlan'ı seçin.
Veritabanı açılan listesinde ContosoUniversity'yi seçin. Yürüt'ü seçin.
Varsayılan uygulama havuzu kimliği artık uygulama çalıştırıldığında veritabanı tablolarını oluşturmak için Kod İlk Geçişleri için uygulama veritabanında yeterli izinlere sahip.
IIS'de yayımla
Visual Studio ve Web Dağıtımı kullanarak IIS'ye dağıtmanın birkaç yolu vardır:
- Visual Studio tek tıklamayla yayımlama özelliğini 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 bir 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.
Dağıtım görevlerini otomatikleştirmek için Visual Studio'yu ayarlamaya yönelik önceki öğreticilerde 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 Haritası'nda 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ımlamak için gereklidir.
Yayımlama profilini oluşturma
Çözüm Gezgini'da ContosoUniversity projesine (ContosoUniversity.DAL projesine değil) sağ tıklayın. Yayımla'yı seçin. Yayımla sayfası görüntülenir.
Yeni Profil'i seçin. Yayımlama hedefi seçin iletişim kutusu görüntülenir.
IIS, FTP vb.'yi seçin. Profil Oluştur'u seçin. Yayımla sihirbazı görüntülenir.
Yayımlama yöntemi açılan menüsünde Web Dağıtımı'nı seçin.
Sunucu alanına localhost girin.
Site adı için Varsayılan Web Sitesi/ContosoUniversity girin.
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.
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.
Ayarlar sekmesine ilerlemek için İleri'yi seçin.
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 derlemelerini dağıtmayacaksınız.
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.
Yayımlama sırasında Ön Derleme ve Hedefte ek dosyaları kaldır onay kutularının işaretini kaldırın.
Ön derleme, çoğunlukla büyük siteler için yararlı olan bir seçenektir. Site yayımlandıktan sonra sayfanın ilk kez istenmesi başlatma süresini kısaltabilir.
Bu ilk dağıtımınız olduğundan ve hedef klasörde henüz hiç dosya olmayacağından ek dosyaları kaldırmanız gerekmez.
Not
Aynı siteye yapılan sonraki 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 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üz bir sonraki yayımlamanı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.
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çildiğinden 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'nde Veri Bağlantıları'nı< genişletin ve machinename>\sqlexpress.aspnet-ContosoUniversity veritabanını seçin, ardından Özellikler penceresinden Bağlantı Dizesi değerini kopyalayın. Bu bağlantı dizesi silebileceğiniz ek bir ayar vardır:
Pooling=False
.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.
Veritabanı güncelleştirmelerini yapılandır'ı seçin.
Veritabanı Güncelleştirmelerini Yapılandır iletişim kutusunda SQL Betiği Ekle'yi seçin. Daha önce çözüm klasörüne kaydettiğiniz Grant.sql betiğine gidin.
aspnet-data-dev.sql betiğini eklemek için işlemi yineleyin.
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 Kod İlk Geçişlerini Yürüt onay kutusu olan bir girdi oluşturur. Bu öğreticide, Kod İlk Geçişleri dağıtımlarını 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 istiyorsunuz. Bu durumda MSDN'deki ASP.NET Web Dağıtımı SSS bölümünde Geçişler olmadan Nasıl yaparım? code first veritabanı dağıtma? konusuna bakın.
Aşağıdaki adımlar, iletişim kutusunun Veritabanları bölümündeki SchoolContext veritabanı için geçerlidir.
Uzak bağlantı dizesi kutusuna, yeni SQL Server Express uygulama veritabanını gösteren 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çildiğinden 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 yaptığınız gibi Sunucu Gezgini'nden de alabilirsiniz.
Kod İlk Geçişlerini Yürüt (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
Kapat'ı seçin. Değişiklikleri kaydetmek isteyip istemediğiniz sorulduğunda Evet'i seçin.
Çözüm Gezgini Özellikler'i genişletin, PublishProfiles'ı genişletin.
CustomProfile.pubxml öğesine sağ tıklayın ve Test.pubxml olarak yeniden adlandırın.
Test.pubxml öğesine sağ tıklayın. Yapılandırma Dönüşümü Ekle'yi seçin.
Visual Studio, Web.Test.config dönüştürme dosyasını oluşturur ve açar.
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 University" H1 başlığından sonra "(Test)" ifadesini görürsünüz.
Dosyayı kaydedip kapatın
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ştirmelerinin önizlemesini görüntüleme
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).
Kopyalanacak dosyaların listesini görmek için Önizleme iletişim kutusunda Önizlemeyi Başlat'ı seçin.
Ü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 hiçbir betik çalıştırıldığından, uygulama veritabanı için önizleme yapılacak bir şey yoktur.)
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.
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
Ortam göstergesinin "(Geliştirme) yerine "(Test)" gösterdiğine dikkat edin. Bu, ortam göstergesi için Web.config dönüştürmesinin başarılı olduğunu gösterir.
Code First'in 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şmeye çalışmadığından 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.
Kurslar menü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ı bulunan bir ELMAH klasörünün var 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ırdığı yeri görebilirsiniz.
Dağıtım işlemi ayrıca, yalnızca veritabanı şemasını güncelleştirmek için kullanmak üzere Code First Migrations için yeni bir bağlantı dizesi oluşturmuştur:
Bu ek bağlantı dizesi, veritabanı şeması güncelleştirmeleri için bir kullanıcı hesabı ve uygulama verileri erişimi için farklı bir kullanıcı hesabı belirtmenizi sağlar. Örneğin, db_owner rolünü Code First Migrations'a atayabilir ve uygulamaya db_datawriter rollerle db_datareader. Bu, uygulamadaki kötü amaçlı olabilecek kodun 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ı izleyin:
Ayarlar sekmesinin altındaki Web'i Yayımla sihirbazı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
.Uygulamanın çalışma zamanında kullanmasını istediğiniz bağlantı dizesi için bir Web.config dosya dönüşümü oluşturun.
Özet
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: 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:
- IIS.net sitesinde IIS Express'e Genel Bakış .
- Scott Guthrie'nin blogundaki IIS Express ile tanışın.
- ASP.NET Web Projeleri için Visual Studio'daki Web Sunucuları.
- IIS ile ASP.NET sitesindeki ASP.NET Geliştirme Sunucusu Arasındaki Temel Farklar.