- Published on
Web Deploy nedir ve nasıl kullanılır?
- Authors
- Name
- Oğuzhan Kırçalı
Profesyonel olarak yazılım geliştirmek için Build Server
bana havalı gelen birşeydi. Ben Visual Studio’da kodu yazıp deleyeceğim ve sağ tık gönder diyince sunucuya gidecekti. Duyduğumda hakikaten bayağı hoşuma gitmişti. Şu aralar iş biraz başa düşünce öğrenmek zorunda kaldığım işlerden biri bu oldu. Build Server’ı yeni oluşturduğumuz ekip için ayağa kaldırma işi de bana kaldı. Ben de yeni öğrendiğim bu güzel şeyi nasıl yaptığımı anlatayım dedim. Şimdi senaryomuz şu; bir yazılım geliştirme ekibimiz ve bir tek veya birden fazla IIS’e sunulacak projemiz var. Yazılım geliştirici kardeşlerim de kodunu yazıp bilgisayarında derledikten sonra hooop derlenen dosyalar sunucuda. Hadi yapalım şu işi.
İlk olarak hangi sunucunun IIS’inde bu uygulama yayınlanacak ise o sunucuya Web Platform Installer
’ı indirip çalıştırıyoruz.
Bunu IIS’inizde bulunan menüsü ile de yapabilirsiniz. Sanırım IIS 7 ve 8’de var bu.
Sunucu düğümü seçiliyken arama kutusuna Web Deploy yazıp çıkan sonuçlardan aşağıdakileri kuruyorsunuz.
- Web Deploy 3.x without bundled SQL
- Web Deploy 3.x
- Web Deploy 3.x for hosting servers
Bunu anlatırken 3.5 versiyonda olduğu için 3.x diye belirttim. 4 veya 5 de farklı bir süreç işletiyor olabilirler.
Yukarıdakileri kurduktan sonra sunucumuzda iki adet servisin kurulduğunu ve çalıştığını doğrulamamız gerekiyor. Bunlar Web Management Service ve Web Deoployment Agent Service.
Servisleri görmek için çalıştır’a services.msc yazarak kontrol edebiliriz.
Bu iki servis çalışıyor göründükten sonra deploy handler’ının kullandığı port olan 8172
’inin de InBound Rules’da Web Management Service (HTTP Traffic-In) isminde tanımlı olduğunu görmek için başlat’a Firewall yazarak Advanced Settings menüsünü kullanabiliriz. İki servisimiz çalışıyorsa ve port tanımımız yapılmış ise şimdi Visual Studio üzerinde derleme tanımlamamızı yapabiliriz. Team Explorer panelindeki Builds menüsünü açtıktan sonra tepedeki New Build Defination’a
tıklıyoruz. Bir isim girip açıklama menüsüne de bu yazıyı kopyalabilirsiniz sonra lazım olur diye :). Trigger sekmesini varsayılan ayarlarında bırakıp Source Settings’e geçiyoruz. Active statüsündeki klasöre projemizin ana dizinini veriyoruz $/Projem
. Cloaked’a $/Projem/Drops
dizinini veriyoruz.
Build Defaults’u olduğu gibi bırakıp esas tanımlamaları yapacağımız Process’e geliyoruz. Items to Build’in yanındaki butona tıklayıp gelen pencerede hangi projemizin derlenmesini istiyorsak onu seçip yan sekmede de hangi işlemci türüne (genelde Any CPU) ve hangi moda (sunucuda Release makbuldür) göre olacağını seçip kaydediyoruz.
Karşılaştığım sorun üzerinde Any CPU’yu seçtikten sonra açılan pencereyi kapatmadan önce Any CPU kelimesindeki Any ve CPU arasındaki boşluğu silip öyle kaydediyorum. Sanırım bir bug bu. Karşılaşırsanız bununla çözebilirsiniz sorunu.
Items to Build ayarını yaptıktan sonra 3. Advanced menüsünün altındaki MSBuild Arguments’a aşağıdaki değeri yapıştırıyoruz.
/p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MSDeployPublishMethod=WMSVC /p:MsDeployServiceUrl=https://ipadresi:8172/MsDeploy.axd /p:DeployIisAppPath=”website adı” /p:VisualStudioVersion=11.0 /p:AllowUntrustedCertificate=true /p:UserName=kullanıcıadı /p:Password=şifre
DeployIisAppPath: IIS’deki sitenin adı
UserName : Sunucudaki windows kullanıcısının kullanıcı adı
Password : Sunucudaki windows kullanıcısının kullanıcı adı
Bu değerleri de yerleştirdikten sonra en keyifli kısma geçebiliriz. Visual Studio’daki Builds menüsünden oluşturduğunuz derleme tanımı üzerine sağ tıklayıp Queue New Build seçeneğini seçip Queue’e tıklıyoruz. Sonrası sadece izliyoruz.
Umarım bu işlem sonucu sunucuda projenizin dosyalarını görürüz.
Kullandığım Sürümler: Visual Studio 2013, Team Foundation Server (TFS) 2012, IIS 8