Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
tarafından Jason Lee
Bu konuda, örnek Contact Manager çözümünü belirli bir hedef ortama dağıtmak için ortama özgü özelliklerin nasıl yapılandırılacağı açıklanmaktadır.
Bu konu, Fabrikam, Inc. adlı kurgusal bir şirketin kurumsal dağıtım gereksinimlerini temel alan bir dizi öğreticinin bir bölümünü oluşturur. Bu öğretici serisinde, bir ASP.NET MVC 3 uygulaması, bir Windows Communication Foundation (WCF) hizmeti ve veritabanı projesi dahil olmak üzere gerçekçi bir karmaşıklık düzeyine sahip bir web uygulamasını temsil etmek için örnek bir çözüm ( Contact Manager çözümü) kullanılmaktadır.
Bu öğreticilerin merkezinde yer alan dağıtım yöntemi, derleme işleminin her hedef ortama uygulanan derleme yönergelerini ve ortama özgü derleme ve dağıtım ayarlarını içeren iki proje dosyası tarafından denetlendiği Derleme sürecini anlama bölümünde açıklanan bölünmüş proje dosyası yaklaşımını temel alır. Derleme zamanında, ortama özgü proje dosyası, derleme yönergelerinin tam bir kümesini oluşturmak için ortama özgü olmayan proje dosyasıyla birleştirilir.
İşleme Genel Bakış
Contact Manager çözümünü derlemek ve dağıtmak için kullanacağınız proje dosyası iki fiziksel dosyaya ayrılır:
- Evrensel derleme ayarlarını ve yönergelerini ( Publish.proj dosyası) içeren bir dosya.
- Ortama özgü derleme ayarlarını içeren bir dosya (Env-Dev.proj, Env-Stage.proj vb.).
Derleme zamanında, ortama özgü uygun proje dosyası, tam bir derleme yönergeleri kümesi oluşturmak için evrensel Publish.proj dosyasıyla birleştirilir. Kendi dağıtım senaryonuzu açıklayan ayarlarla ortama özgü proje dosyaları oluşturarak veya özelleştirerek belirli hedef ortamlara dağıtımı yapılandırabilirsiniz.
Bu değerlerin çoğu hedef ortamınızın nasıl yapılandırıldığına (özellikle de hedef web sunucunuzun Web Dağıtım Aracısı Hizmeti'ni (uzak aracı) veya Web Dağıtımı İşleyicisi'ni kullanacak şekilde yapılandırılıp yapılandırılmadığına göre belirlenir. Bu yaklaşımlar hakkında daha fazla bilgi edinmek ve kendi ortamınız için doğru yaklaşımı seçme yönergeleri için bkz. Web Dağıtımına Doğru Yaklaşımı Seçme.
Contact Manager senaryosu, ortama özgü iki proje dosyası gerektirir:
- Geliştirici test ortamına (Env-Dev.proj) dağıtım. Geliştirici test ortamı, Senaryo: Web Dağıtımı için Test Ortamı Yapılandırma bölümünde açıklandığı gibi uzak aracıyı kullanarak uzak dağıtımları kabul etmek üzere yapılandırılır. Bu dosyanın uzak aracı uç nokta adresinin yanı sıra bağlantı dizeleri ve hizmet uç noktaları gibi konuma özgü ayarları sağlaması gerekir.
- Hazırlama ortamına dağıtım (Env-Stage.proj). Hazırlama ortamı, Senaryo: Web Dağıtımı için Hazırlama Ortamı Yapılandırma bölümünde açıklandığı gibi Web Dağıtımı İşleyicisi kullanılarak uzak dağıtımları kabul etmek üzere yapılandırılır. Bu dosyanın Web Dağıtımı İşleyicisi uç nokta adresinin yanı sıra bağlantı dizeleri ve hizmet uç noktaları gibi konuma özgü ayarları sağlaması gerekir.
Ortama özgü proje dosyasında yapılandırdığınız ayarların web paketinin içeriğini etkilemediğini, bunun yerine paketin nasıl dağıtıldığını ve paket ayıklandığında hangi parametre değerlerinin sağlandığını denetlediklerini unutmayın. Senaryo: Web Dağıtımı için Üretim Ortamı Yapılandırma ve WebPaketlerini El ile Yükleme bölümünde açıklandığı gibi, web paketini üretim ortamına el ile aktarıyorsunuz. Bu nedenle, paketi oluştururken ortama özgü proje dosyasında hangi ayarları kullandığınız önemli değildir. Internet Information Services (IIS) Yöneticisi, paketi içeri aktardığınızda bağlantı dizeleri ve hizmet uç noktaları gibi parametreli değerleri girmenizi ister.
Contact Manager çözümünü kendi hedef ortamınıza dağıtmak için bu dosyayı özelleştirebilir veya şablon olarak kullanıp kendi dosyanızı oluşturabilirsiniz.
Contact Manager çözümü için ortama özgü dağıtım ayarlarını yapılandırmak için
Visual Studio 2010'da ContactManager-WCF çözümünü açın.
Çözüm Gezgini penceresinde Yayımla klasörünü genişletin, EnvConfig klasörünü genişletin ve ardından Env-Dev.proj öğesine çift tıklayın.
Env-Dev.proj dosyasındaki özellik değerlerini kendi test ortamınız için doğru değerlerle değiştirin.
Uyarı
Bu yordamı izleyen tablo, bu özelliklerin her biri hakkında daha fazla bilgi sağlar.
Çalışmanızı kaydedin ve ardından Env-Dev.proj dosyasını kapatın.
Doğru Dağıtım Özelliklerini Seçme
Bu tablo, ortama özgü örnek proje dosyası Env-Dev.proj'daki her özelliğin amacını açıklar ve sağlamanız gereken değerler hakkında bazı yönergeler sağlar.
Özellik Adı | Ayrıntılar |
---|---|
MSDeployComputerName Hedef web sunucusunun veya hizmet uç noktasının adı. | Hedef web sunucusundaki uzak aracı hizmetine dağıtıyorsanız, hedef bilgisayar adını (örneğin, TESTWEB1 veya TESTWEB1.fabrikam.net) belirtebilir veya uzak aracı uç noktasını (örneğin, http://TESTWEB1/MSDEPLOYAGENTSERVICE ) belirtebilirsiniz. Dağıtım her durumda aynı şekilde aynıdır. Hedef web sunucusunda Web Dağıtımı İşleyicisi'ne dağıtıyorsanız, hizmet uç noktasını belirtmeniz ve IIS web sitesinin adını sorgu dizesi parametresi olarak eklemeniz gerekir (örneğin, https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite ). |
MSDeployAuth Web Deploy'ın uzak bilgisayarda kimlik doğrulaması yapmak için kullanması gereken yöntem. | Bu , NTLM veya Basic olarak ayarlanmalıdır. Genellikle, uzak aracı hizmetine dağıtıyorsanız NTLM ve Web Dağıtımı İşleyicisi'ne dağıtıyorsanız Temel'i kullanırsınız. Temel kimlik doğrulaması kullanıyorsanız, dağıtımı gerçekleştirmek için IIS Web Dağıtım Aracı'nın (Web Dağıtımı) kimliğine bürünmesi gereken kullanıcı adını ve parolayı da belirtmeniz gerekir. Bu örnekte, bu değerler MSDeployUsername ve MSDeployPassword özellikleri aracılığıyla sağlanır. NTLM kimlik doğrulaması kullanıyorsanız, bu özellikleri atlayabilir veya boş bırakabilirsiniz. |
MSDeployUsername Temel kimlik doğrulaması kullanıyorsanız, Web Dağıtımı bu hesabı uzak bilgisayarda kullanır. | Bu, ETKİALANI*kullanıcıadı* biçiminde olmalıdır (örneğin, FABRIKAM\matt). Bu değer yalnızca temel kimlik doğrulaması belirtirseniz kullanılır. NTLM kimlik doğrulaması kullanıyorsanız özelliği atlanabilir. Herhangi bir değer sağlanırsa göz ardı edilir. |
MSDeployPassword Temel kimlik doğrulaması kullanıyorsanız, Web Dağıtımı uzak bilgisayarda bu parolayı kullanır. | Bu, MSDeployUsername özelliğinde belirttiğiniz kullanıcı hesabının parolasıdır. Bu değer yalnızca temel kimlik doğrulaması belirtirseniz kullanılır. NTLM kimlik doğrulaması kullanıyorsanız özelliği atlanabilir. Herhangi bir değer sağlanırsa göz ardı edilir. |
ContactManagerIisPath Contact Manager MVC uygulamasını dağıtmak istediğiniz IIS yolu. | Bu, IIS Yöneticisi'nde [IIS web sitesi adı]/[webuygulaması adı] biçiminde görünen yol olmalıdır. Uygulamanızı dağıtmadan önce IIS web sitesinin mevcut olması gerektiğini unutmayın. Örneğin, DemoSite adlı bir IIS web sitesi oluşturduysanız, MVC uygulamasının IIS yolunu DemoSite/ContactManager olarak belirtebilirsiniz. |
ContactManagerServiceIisPath Contact Manager WCF hizmetini dağıtmak istediğiniz IIS yolu. | Örneğin, DemoSite adlı bir IIS web sitesi oluşturduysanız, WCF hizmetinin IIS yolunu DemoSite/ContactManagerService olarak belirtebilirsiniz. |
ContactManagerTargetUrl WCF hizmetine ulaşabileceğiniz URL. | Bu, [IIS web sitesi kök URL'si]/[hizmet uygulaması adı]/[hizmet uç noktası] biçiminde olur. Örneğin, bağlantı noktası 85'te bir IIS web sitesi oluşturduysanız, URL biçiminde http://localhost:85/ContactManagerService/ContactService.svc olacaktır. MVC uygulamasının ve WCF hizmetinin aynı sunucuya dağıtıldığını unutmayın. Sonuç olarak, bu URL'ye yalnızca yüklü olduğu makineden erişilir. Bu nedenle, URL'de makine adı veya konak üst bilgisi yerine localhost veya IP adresini kullanmak daha iyidir. Makine adını veya ana bilgisayar üst bilgisini kullanırsanız, IIS'deki geri döngü denetimi güvenlik özelliği URL'yi engelleyebilir ve HTTP 401.1 - Yetkisiz hata döndürebilir. |
CmDatabaseConnectionString Veritabanı sunucusunun bağlantı dizesi. | Bağlantı dizesi, VSDBCMD'nin veritabanı sunucusuyla iletişim kurmak ve veritabanını oluşturmak için kullanacağı kimlik bilgilerini ve web sunucusu uygulama havuzunun veritabanı sunucusuyla iletişim kurmak ve veritabanıyla etkileşim kurmak için kullanacağı kimlik bilgilerini belirler. Temelde burada iki seçeneğiniz vardır. Tümleşik Güvenlik=true değerini belirtebilirsiniz; bu durumda tümleşik Windows kimlik doğrulaması kullanılır: Veri Kaynağı=TESTDB1; Integrated Security=true Bu durumda veritabanı, VSDBCMD yürütülebilir dosyasını çalıştıran kullanıcının kimlik bilgileri kullanılarak oluşturulur ve uygulama web sunucusu makine hesabının kimliğini kullanarak veritabanına erişecektir. Alternatif olarak, SQL Server hesabının kullanıcı adını ve parolasını belirtebilirsiniz. Bu durumda SQL Server kimlik bilgileri hem VSDBCMD tarafından veritabanını oluşturmak için hem de uygulama havuzu tarafından veritabanıyla etkileşim kurmak için kullanılır: Veri Kaynağı=TESTDB1; Kullanıcı Kimliği=ASqlUser; Parola=; Bu konudaki kılavuzlarda tümleşik Windows kimlik doğrulaması kullanacağınız varsayılır. |
CmTargetDatabase Veritabanı sunucusunda oluşturacağınız veritabanına vermek istediğiniz ad. | Burada sağladığınız değer VSDBCMD komutuna parametre olarak eklenir. Ayrıca web sunucusundaki uygulama havuzunun veritabanıyla etkileşim kurmak için kullanabileceği tam bir bağlantı dizesi oluşturmak için de kullanılır. |
Bu örnekler, belirli dağıtım senaryoları için bu özellikleri nasıl yapılandırabileceğinizi gösterir.
Örnek 1—Uzak Aracı Hizmetine Dağıtım
Bu örnekte:
- TESTWEB1'de uzaktan ajan hizmetine dağıtım yapıyorsunuz.
- Web Dağıtımı'na NTLM kimlik doğrulamasını kullanmasını emrediyorsun. Web Dağıtımı, Microsoft Derleme Altyapısı'nı (MSBuild) çağırmak için kullandığınız kimlik bilgilerini kullanarak çalışır.
- ContactManager veritabanını TESTDB1 dağıtmak için tümleşik kimlik doğrulaması kullanıyorsunuz. Veritabanı, MSBuild'i çağırmak için kullandığınız kimlik bilgileri kullanılarak dağıtılır.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSDeployComputerName Condition=" '$(MSDeployComputerName)'=='' ">
TESTWEB1.fabrikam.net
</MSDeployComputerName>
<MSDeployAuth Condition=" '$(MSDeployAuth)'=='' ">NTLM</MSDeployAuth>
<ContactManagerTargetUrl Condition =" '$(ContactManagerTargetUrl)'=='' ">
http://localhost:85/ContactManagerService/ContactService.svc
</ContactManagerTargetUrl>
<ContactManagerIisPath Condition=" '$(ContactManagerIisPath)'=='' ">
DemoSite/ContactManager
</ContactManagerIisPath>
<ContactManagerServiceIisPath
Condition=" '$(ContactManagerServiceIisPath)'=='' ">
DemoSite/ContactManagerService
</ContactManagerServiceIisPath>
<CmDatabaseConnectionString Condition=" '$(CmDatabaseConnectionString)'=='' ">
Data Source=TESTDB1;Integrated Security=true</CmDatabaseConnectionString>
<CmTargetDatabase Condition=" '$(CmTargetDatabase)'=='' ">
ContactManager
</CmTargetDatabase>
</PropertyGroup>
</Project>
Örnek 2—Web Dağıtımı İşleyici Uç Noktasına Dağıtım
Bu örnekte:
- STAGEWEB1'da Web Dağıtımı İşleyicisi hizmet uç noktasına dağıtıyorsunuz.
- Web Dağıtımı'na temel kimlik doğrulamasını kullanma talimatını verirsiniz.
- Web Dağıtımı'nın uzak bilgisayardaki FABRIKAM\stagingdeployer hesabının kimliğine bürünmesi gerektiğini belirtiyorsunuz.
- ContactManager veritabanını STAGEDB1 dağıtmak için SQL Server kimlik doğrulamasını kullanıyorsunuz.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSDeployComputerName Condition=" '$(MSDeployComputerName)'=='' ">
https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite
</MSDeployComputerName>
<MSDeployAuth Condition=" '$(MSDeployAuth)'=='' ">Basic</MSDeployAuth>
<MSDeployUsername Condition=" '$(MSDeployUsername)'=='' ">
FABRIKAM\stagingdeployer
</MSDeployUsername>
<MSDeployPassword Condition=" '$(MSDeployPassword)'=='' ">
Pa$$w0rd
</MSDeployPassword>
<ContactManagerTargetUrl Condition =" '$(ContactManagerTargetUrl)'=='' ">
http://localhost:85/ContactManagerService/ContactService.svc
</ContactManagerTargetUrl>
<ContactManagerIisPath Condition=" '$(ContactManagerIisPath)'=='' ">
DemoSite/ContactManager
</ContactManagerIisPath>
<ContactManagerServiceIisPath
Condition=" '$(ContactManagerServiceIisPath)'=='' ">
DemoSite/ContactManagerService
</ContactManagerServiceIisPath>
<CmDatabaseConnectionString Condition=" '$(CmDatabaseConnectionString)'=='' ">
Data Source=STAGEDB1;User ID=sa;'$($CREDENTIAL_PLACEHOLDER$)'
</CmDatabaseConnectionString>
<CmTargetDatabase Condition=" '$(CmTargetDatabase)'=='' ">
ContactManager
</CmTargetDatabase>
</PropertyGroup>
</Project>
Sonuç
Bu noktada proje dosyalarınız, Contact Manager çözümünü derlemek ve bir veya daha fazla hedef ortam için dağıtmak üzere tamamen yapılandırılmıştır.
Bu proje dosyalarını tek adımlı, yinelenebilir bir dağıtım işleminin parçası olarak kullanmak için MSBuild kullanarak Publish.proj dosyasını yürütmeniz ve ortama özgü proje dosyasının konumunu parametre olarak geçirmeniz gerekir. Bunu çeşitli yollarla yapabilirsiniz:
- MSBuild'e genel bakış ve özel proje dosyalarına giriş için bkz. Proje Dosyasını Anlama.
- Özel proje dosyalarınızı yürüten bir MSBuild komutunu formüle etme hakkında bilgi için bkz. Web Paketlerini Dağıtma.
- MSBuild komutlarınızı tek adımlı, yinelenebilir dağıtımlar için komut dosyasına ekleme hakkında bilgi için bkz. Dağıtım Komut Dosyası Oluşturma ve Çalıştırma.
- Özel proje dosyalarınızı Takım Derlemesi'nden yürütme hakkında bilgi için bkz. Dağıtımı Destekleyen Bir Derleme Tanımı Oluşturma.