Web Dağıtımı için Doğru Yaklaşımı SeçmeChoosing the Right Approach to Web Deployment

Jason Lee tarafındanby Jason Lee

PDF 'YI indirDownload PDF

Internet Information Services (IIS) Web Dağıtım Aracı (Web Dağıtımı) 2,0 veya sonraki sürümleriyle çalışırken, paketlenmiş Web uygulamalarınızı bir Web sunucusuna almak için kullanabileceğiniz üç ana yaklaşım vardır.When you work with the Internet Information Services (IIS) Web Deployment Tool (Web Deploy) 2.0 or later, there are three main approaches you can use to get your packaged web applications onto a web server. Şunlardan birini yapabilirsiniz:You can either:

  • Hedef sunucuda Web Deployment Agent hizmetini ("uzak Aracı" olarak da bilinir) hedefleyerek uygulamayı uzak bir konumdan dağıtın.Deploy the application from a remote location by targeting the Web Deployment Agent Service (also known as the "remote agent") on the destination server.
  • Uygulamayı Isteğe bağlı Web Dağıtımı ("geçici aracı" olarak da bilinir) kullanarak uzak bir konumdan dağıtın.Deploy the application from a remote location using Web Deploy On Demand (also known as the "temp agent").
  • Hedef sunucuda ııs Web dağıtımı işleyicisini hedefleyerek, uzak bir konumdan uygulamayı dağıtın.Deploy the application from a remote location by targeting the IIS Web Deploy Handler on the destination server.
  • Web paketini hedef sunucuya el ile kopyalayarak ve IIS Yöneticisi aracılığıyla içeri aktararak uygulamayı dağıtın.Deploy the application by manually copying the web package to the destination server and importing it through IIS Manager.

Hedef Web sunucularınızı nasıl yapılandırdığınız, kullanmak istediğiniz dağıtıma göre değişir.How you configure your destination web servers will depend on which approach to deployment you want to use. Bu konu, hangi dağıtıma yönelik hangi yaklaşımın sizin için doğru olduğuna karar vermenize yardımcı olur.This topic will help you decide which approach to deployment is right for you.

Bu tabloda her bir yaklaşım için en sık kullanılan senaryolarla birlikte her bir dağıtım yaklaşımının başlıca avantajları ve dezavantajları gösterilmektedir.This table shows the main advantages and disadvantages of each deployment approach, together with the scenarios that most typically suit each approach.

YaklaşımApproach YararlarıAdvantages DezavantajlarDisadvantages Tipik senaryolarTypical Scenarios
Uzak AracıRemote Agent Kolayca ayarlanabilir.It is easy to set up. Web uygulamalarına ve içeriğine yönelik normal güncelleştirmeler için uygundur.It is suitable for regular updates to web applications and content. Kullanıcının hedef sunucuda yönetici olması gerekir.The user must be an administrator on the target server. Kullanıcı alternatif kimlik bilgilerini sağlayamıyorum.the user can't supply alternative credentials. Geliştirme ortamları.Development environments. Test ortamları.Test environments.
Geçici aracıTemp Agent Hedef bilgisayara Web Dağıtımı yüklemeye gerek yoktur.There is no need to install Web Deploy on the target computer. Web Dağıtımı en son sürümü otomatik olarak kullanılır.The latest version of Web Deploy is automatically used. Kullanıcının hedef sunucuda yönetici olması gerekir.The user must be an administrator on the target server. Kullanıcı alternatif kimlik bilgilerini sağlayamıyorum.The user can't supply alternative credentials. Geliştirme ortamları.Development environments. Test ortamları.Test environments.
Web Dağıtımı IşleyicisiWeb Deploy Handler Yönetici olmayan kullanıcılar, içerik dağıtabilir.Non-administrator users can deploy content. Web uygulamalarına ve içeriğine yönelik normal güncelleştirmeler için uygundur.It is suitable for regular updates to web applications and content. Ayarlamanız çok daha karmaşıktır.It is a lot more complex to set up. Hazırlama ortamları.Staging environments. Intranet üretim ortamları.Intranet production environments. Barındırılan ortamlar.Hosted environments.
Çevrimdışı dağıtımOffline Deployment Kolayca ayarlanabilir.It is very easy to set up. Yalıtılmış ortamlar için uygundur.It is suitable for isolated environments. Sunucu Yöneticisi, Web paketini her seferinde el ile kopyalayıp içeri aktarmalıdır.The server administrator must manually copy and import the web package every time. Internet 'e yönelik üretim ortamları.Internet-facing production environments. Yalıtılmış ağ ortamları.Isolated network environments.

Uzak aracıyı kullanmaUsing the Remote Agent

Bir hedef sunucuda varsayılan ayarları kullanarak Web Dağıtımı yüklediğinizde, Web Deployment Agent hizmeti ("uzak Aracı") otomatik olarak yüklenip başlatılır.When you install Web Deploy using the default settings on a destination server, the Web Deployment Agent Service (the "remote agent") is automatically installed and started. Varsayılan olarak, uzak Aracı şu adreste bir HTTP uç noktası sunar:By default, the remote agent exposes an HTTP endpoint at this address:

http://[server]/MSDEPLOYAGENTSERVICE

Note

[Server] yerine Web sunucunuzun makine adını, Web sunucunuzun IP adresini veya Web sunucunuza çözümlenen bir ana bilgisayar adını değiştirebilirsiniz.You can replace [server] with the machine name of your web server, an IP address for your web server, or a hostname that resolves to your web server.

Sunucu yöneticileri, bu uç nokta adresini belirterek bir geliştirici makinesi veya yapı sunucusu gibi uzak bir konumdan Web paketleri dağıtabilir.Server administrators can deploy web packages from a remote location, like a developer machine or a build server, by specifying this endpoint address. Örneğin, Fabrikam, Inc. adresinden Matt hink, geliştirici makinesinde ContactManager. Mvc Web uygulaması projesini oluşturduğunu varsayalım.For example, suppose Matt Hink at Fabrikam, Inc. has built the ContactManager.Mvc web application project on his developer machine. Yapı işlemi, paketi yüklemek için gereken Web Dağıtımı komutlarını içeren . deploy. cmd dosyası ile birlikte bir Web paketi oluşturur.The build process generates a web package, together with a .deploy.cmd file that contains the Web Deploy commands required to install the package. Matt, TESTWEB1 sunucusunda bir sunucu yöneticisiyseniz, geliştirici makinesinde bu komutu çalıştırarak Web uygulamasını test Web sunucusuna dağıtabilir:If Matt is a server administrator on the TESTWEB1 server, he can deploy the web application to the test web server by running this command on his developer machine:

ContactManager.Mvc.deploy.cmd /y /m:http://TESTWEB1/MSDEPLOYAGENTSERVICE a/:NTLM

Gerçek olguda, Web Dağıtımı yürütülebilir dosyası, makine adını sağlarsanız, uzak aracının uç nokta adresini çıkarabilir, bu nedenle yalnızca Matt yalnızca şunu yazmaları gerekir:In actual fact, the Web Deploy executable can infer the endpoint address of the remote agent if you provide the machine name, so Matt only needs to type this:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /a:NTLM

Note

Web Dağıtımı komut satırı sözdizimi ve . cmd dosyalarını dağıtma hakkında daha fazla bilgi için bkz. nasıl yapılır: dağıtım paketini Deploy. cmd dosyasını kullanarak oluşturma.For more information on Web Deploy command-line syntax and .deploy.cmd files, see How to: Install a Deployment Package Using the deploy.cmd File.

Uzak Aracı, uzak bir konumdan içerik dağıtmanın kolay bir yolunu sunar ve bu yaklaşım tek tıklamayla veya otomatik dağıtımla iyi çalışabilir.The remote agent offers a straightforward way to deploy content from a remote location, and this approach can work well with one-click or automated deployment. Ancak, dağıtım komutunu çalıştıran kullanıcının aynı zamanda bir etki alanı yöneticisi veya hedef sunucuda yerel Yöneticiler grubunun bir üyesi olması gerekir.However, the user who runs the deployment command must also be either a domain administrator or a member of the local administrators group on the destination server. Buna ek olarak, uzak Aracı temel kimlik doğrulamasını desteklemez, bu nedenle komut satırına alternatif kimlik bilgilerini geçiremezsiniz.In addition, the remote agent doesn't support basic authentication, so you can't pass alternative credentials on the command line.

Uzak Aracı, geliştirme veya test senaryolarında dağıtıma faydalı bir yaklaşım sağlar. burada, geliştiricilerin bir test sunucusu ortamı üzerinde tam yönetici denetimine sahip olması ve uygulamaların genellikle yeniden oluşturulması ve yeniden dağıtılması çok seyrek değildir. karşılaşırsanız.The remote agent provides a useful approach to deployment in development or test scenarios, where it's not uncommon for developers to have full administrator control over a test server environment, and applications are typically rebuilt and redeployed very frequently. Ancak, bu yaklaşım genellikle hazırlama veya üretim ortamları için daha az kabul edilebilir.However, this approach is usually less acceptable for staging or production environments.

Uzak aracı yaklaşımını kullanan bir senaryoya uçtan uca bir örnek için bkz. Senaryo: Web dağıtımı Için test ortamı yapılandırma.For an end-to-end example of a scenario that uses the remote agent approach, see Scenario: Configuring a Test Environment for Web Deployment.

Geçici aracıyı kullanmaUsing the Temp Agent

Dağıtım için geçici aracı yaklaşımı, uzak Aracı yaklaşımına benzer.The temp agent approach to deployment is similar to the remote agent approach. Ancak, uzak Aracı yaklaşımını tersine, hedef Web sunucusuna Web Dağıtımı yüklemeniz gerekmez.However, in contrast to the remote agent approach, you don't need to install Web Deploy on the destination web server. Bunun yerine, dağıtımını gerçekleştirdiğinizde Web Dağıtımı hedef sunucuda Web Dağıtım Aracısı hizmetinin geçici bir sürümünü yükler ve bu işlemi kullanarak içeriğinizi IIS 'e dağıtabilirsiniz.Instead, when you perform the deployment, Web Deploy will install a temporary version of the web deployment agent service on the destination server and will use this to deploy your content to IIS. Dağıtım tamamlandığında, tüm geçici dosyalar kaldırılır.When the deployment is complete, all temporary files are removed.

Geçici aracı sağlayıcısı ayarını kullanmak istiyorsanız, dağıtım Komutunuz için /g bayrağını ekleyin:If you want to use the temp agent provider setting, add the /g flag to your deployment command:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /g:true

Note

Hizmet çalışmıyor olsa bile, hedef bilgisayara Web Dağıtım Aracısı hizmeti yüklenmişse geçici aracıyı kullanamazsınız.You can't use the temp agent if the web deployment agent service is installed on the destination computer, even if the service is not running.

Bu yaklaşımın avantajı, hedef sunucularınızda Web Dağıtımı yüklemelerini sürdürmenize gerek kalmaz.The advantage of this approach is that you don't need to maintain installations of Web Deploy on your destination servers. Ayrıca, kaynak ve hedef bilgisayarların aynı Web Dağıtımı sürümünü çalıştırdığından emin olmanız gerekmez.Furthermore, you don't need to ensure that the source and destination computers are running the same version of Web Deploy. Ancak, bu yaklaşım uzak Aracı yaklaşımıyla aynı asıl sınırlamalara sahiptir; Yani, içerik dağıtmak için hedef sunucuda yerel yönetici olmanız ve yalnızca NTLM kimlik doğrulamasının desteklenmesi gerekir.However, this approach suffers from the same principal limitations as the remote agent approach, namely that you must be a local administrator on the destination server in order to deploy content, and only NTLM authentication is supported. Geçici aracı yaklaşımı aynı zamanda hedef ortamın daha fazla bir başlangıç yapılandırmasını gerektirir.The temp agent approach also requires a lot more initial configuration of the destination environment.

Geçici aracıyı kullanma hakkında daha fazla bilgi için bkz. nasıl yapılır: dağıtım paketini Deploy. cmd dosyasını kullanarak yüklemek ve isteğe bağlı Web dağıtımı.For more information on using the temp agent, see How to: Install a Deployment Package Using the deploy.cmd File and Web Deploy On Demand.

Web Dağıtımı Işleyicisini kullanmaUsing the Web Deploy Handler

IIS 7 ve sonraki sürümleri için Web Dağıtımı IIS Web Dağıtımı Işleyicisi aracılığıyla alternatif bir dağıtım yaklaşımı sunar.For IIS 7 onwards, Web Deploy offers an alternative deployment approach through the IIS Web Deploy Handler. Web Dağıtımı Işleyicisi, kullanıcıların IIS Web sitelerini uzak konumlardan yönetmesine olanak tanımak için tasarlanan IIS Web yönetimi hizmeti (WMSvc) ile yakından tümleşiktir.The Web Deploy Handler is closely integrated with the IIS Web Management Service (WMSvc), which is designed to allow users to manage IIS websites from remote locations.

Varsayılan olarak, uzak Aracı şu adreste bir HTTP uç noktası sunar:By default, the remote agent exposes an HTTP endpoint at this address:

https://[server]:8172/MSDeploy.axd

Note

[Server] yerine Web sunucunuzun makine adını, Web sunucunuzun IP adresini veya Web sunucunuza çözümlenen bir ana bilgisayar adını değiştirebilirsiniz.You can replace [server] with the machine name of your web server, an IP address for your web server, or a hostname that resolves to your web server.

Uzak aracı ve geçici aracı üzerinde Web Dağıtımı Işleyicisinin büyük avantajı, yönetici olmayan kullanıcıların uygulamaları ve içeriği belirli IIS Web sitelerine dağıtmasını sağlayacak şekilde IIS 'yi yapılandırabilmeniz gerekir.The big advantage of the Web Deploy Handler over the remote agent, and the temp agent, is that you can configure IIS to allow non-administrator users to deploy applications and content to specific IIS websites. Web Dağıtımı Işleyicisi temel kimlik doğrulamasını da destekler, böylece Web Dağıtımı komutlarınıza parametre olarak alternatif kimlik bilgileri sağlayabilirsiniz.The Web Deploy Handler also supports basic authentication, so you can provide alternative credentials as parameters in your Web Deploy commands. Büyük dezavantajı, Web Dağıtımı Işleyicisinin ilk olarak ayarlanması ve yapılandırılması için çok daha karmaşıktır.The major drawback is that the Web Deploy Handler is initially a lot more complicated to set up and configure.

Yönetici olmayan kullanıcılar söz konusu olduğunda, Web yönetimi hizmeti (WMSvc) yalnızca kullanıcının sunucu düzeyindeki bir bağlantı yerine site düzeyinde bir bağlantı kullanarak IIS 'ye bağlanmasına izin verir.In the case of non-administrator users, the Web Management Service (WMSvc) will only allow the user to connect to IIS using a site-level connection, rather than a server-level connection. Belirli bir siteye erişmek için uç nokta adresine siteye özgü bir sorgu dizesi dahil edebilirsiniz:To access a particular site, you can include a site-specific query string in the endpoint address:

https://[server]:8172/MSDeploy.axd?site=DemoSite

Örneğin, her başarılı derlemeden sonra bir hazırlama ortamına otomatik olarak bir Web uygulaması dağıtmak üzere bir yapı işleminin yapılandırıldığını varsayalım.For example, suppose a build process is configured to automatically deploy a web application to a staging environment after every successful build. Uzak aracı yaklaşımını kullandıysanız, yapı işlem kimliğini hedef sunucularınızda yönetici yapmanız gerekir.If you used the remote agent approach, you'd need to make the build process identity an administrator on your destination servers. Buna karşılık, Web dağıtımı işleyicisi yaklaşımını kullanarak yönetici olmayan—bir kullanıcıya yalnızca belirli bir IIS Web sitesi için—izin verebilir ve derleme işlemi, Web paketini dağıtmak için bu kimlik bilgilerini verebilir.In contrast, using the Web Deploy Handler approach you can give a non-administrator user—FABRIKAM\stagingdeployer in this case—permission to a specific IIS website only, and the build process can provide these credentials to deploy the web package.

msdeploy.exe 
  -source:package='…\ContactManager.Mvc.zip' 
  -dest:auto,
        computerName='https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite',
        userName='FABRIKAM\stagingdeployer',
        password='Pa$$w0rd',
        authtype='Basic', 
  -verb:sync 
  -setParamFile:"…\ContactManager.Mvc.SetParameters.xml"   
  -allowUntrusted

Note

Web Dağıtımı komut satırı işlemleri ve sözdizimi hakkında daha fazla bilgi için bkz. Web dağıtımı komut satırı başvurusu.For more information on Web Deploy command-line operations and syntax, see Web Deploy Command Line Reference. . Deploy. cmd dosyasını kullanma hakkında daha fazla bilgi için bkz. nasıl yapılır: dağıtım paketini Deploy. cmd dosyasını kullanarakkullanma.For more information on using the .deploy.cmd file, see How to: Install a Deployment Package Using the deploy.cmd File.

Web Dağıtımı Işleyici, hazırlama ortamları, barındırılan ortamlar ve Intranet tabanlı üretim ortamlarında dağıtıma yönelik olarak, sunucuya uzaktan erişimin kullanılabildiği, ancak yönetici kimlik bilgilerinin olmadığı yararlı bir yaklaşım sağlar.The Web Deploy Handler provides a useful approach to deployment in staging environments, hosted environments, and intranet-based production environments, where remote access to the server is available but administrator credentials are not.

Web Dağıtımı Işleyicisi yaklaşımını kullanan bir senaryonun uçtan uca bir örneği için bkz. Senaryo: Web dağıtımı Için hazırlama ortamı yapılandırma.For an end-to-end example of a scenario that uses the Web Deploy Handler approach, see Scenario: Configuring a Staging Environment for Web Deployment.

Çevrimdışı dağıtım kullanmaUsing Offline Deployment

Bazı durumlarda, uzak bir konumdan bir IIS Web sitesine uygulama ve içerik dağıtmak mümkün değildir veya pratik değildir.In some cases, it's not possible or practical to deploy applications and content to an IIS website from a remote location. Örneğin, kaynak ve hedef bilgisayarlar yalıtılmış ağlarda veya ağ kesimlerinde olabilir veya güvenlik duvarı ilkesi uzaktan erişime izin vermeyebilir.For example, the source and destination computers may be in isolated networks or network segments, or firewall policy may not permit remote access.

Bunlar gibi senaryolarda, Web Dağıtımı; paketleme ve yayımlama özelliklerini kullanmaya devam edebilirsiniz. yalnızca uzak bir konumdan kullanamazsınız.In scenarios like these, you can still use the packaging and publishing capabilities of Web Deploy; you just can't use them from a remote location. Bunun yerine, hedef sunucudaki bir yöneticinin Web paketini sunucuya kopyalaması ve IIS Yöneticisi aracılığıyla içeri aktarması gerekir.Instead, an administrator on the destination server must copy the web package onto the server and import it through IIS Manager.

Çevrimdışı dağıtım yaklaşımı genellikle Internet 'e yönelik üretim ortamlarında yararlı olur ve bir çevre ağındaki sunucular iç ağdaki bilgisayarlarla sınırlı bir bağlantı olabilir.The offline deployment approach is typically useful in Internet-facing production environments, where servers in a perimeter network may have restricted connectivity with computers in the internal network.

Çevrimdışı dağıtım yaklaşımını kullanan bir senaryoya uçtan uca bir örnek için bkz. Senaryo: Web dağıtımı Için üretim ortamı yapılandırma.For an end-to-end example of a scenario that uses the offline deployment approach, see Scenario: Configuring a Production Environment for Web Deployment.

Daha Fazla BilgiFurther Reading

Web Dağıtımı komut satırı işlemleri ve sözdizimi hakkında daha fazla bilgi için bkz. Web dağıtımı komut satırı başvurusu.For more information on Web Deploy command-line operations and syntax, see Web Deploy Command Line Reference. . Deploy. cmd dosyasını kullanma hakkında daha fazla bilgi için bkz. nasıl yapılır: dağıtım paketini Deploy. cmd dosyasını kullanarakkullanma.For more information on using the .deploy.cmd file, see How to: Install a Deployment Package Using the deploy.cmd File.

Uzak bir bilgisayardan Web paketleri dağıtmak için kullanabileceğiniz farklı yollarla ilgili daha genel yönergeler için, bkz. Web Dağıtımı uzaktan kullanma.For more general guidance on the different ways in which you can deploy web packages from a remote computer, see Using Web Deploy Remotely. Isteğe bağlı Web Dağıtımı kullanma hakkında daha fazla bilgi için bkz. isteğe bağlı Web dağıtımı.For more information on using Web Deploy On Demand, see Web Deploy On Demand.