Öncelikle şunu belirteyim belki içinizde daha önce bunu yapan vardır. IIS teki siteler başka bi IIS e taşınırken tek tek bu uygulamaları tanımlamak bazen işkenceye dönüşebilir. Hele bide benim gibi bir sunucuda 60 – 70 sitenin her birini altında 4 5 tane binding varsa ve bu işlemi bilmiyorsanız geçmiş olsun işiniz gerçekten zor demektir.
Eğer bir Load balancer sistem kuracaksanız ve ya Disaster Recovery oluşturacaksanız bu makale çok çok işinize yarayabilir ( Tabi komple Sunucuyu da taşıyabilirsiniz ).
IIS te Sitelerin Dışarı Aktarılması
Öncelikle IIS e geliyoruz ve resimdeki gibi sitelerimizin olduğunu görüyoruz.
Gördüğünüz gibi IIS de 6 Adet Site Bulunuyor.
Şimdi Komut İstemini Yönetici olarak çalıştırıp alttaki komutu yazıyoruz.
%windir%\system32\inetsrv\appcmd list site /config /xml > c:\websiteler.xml
Eğer Tek bir siteyi export etmek istiyorsanız komut alttaki gibidir.
%windir%\system32\inetsrv\appcmd list site “www.abc.com” /config /xml > c:\Website1.xml
Biraz da komutu açıklayalım. Burda IIS yönetmek için appcmd diye bir komutumuz var.
%windir%\system32\inetsrv\appcmd = Komutun bu kısmı IIS yönetim komutudur. Bundan sonrasına yapacağımız işlemi yazarız.
Bir burda LİST dedik ve sonrasında SİTE diyerek neyin listesini istediğimiz belirttik. Bütün yapılandırmayı istediğimiz için /CONFİG komutunu da ekledik eğer eklemeseydik bize sadece Site ismi site durumu binding ve site id lerini verecekti. Amacınız bir liste almaksa config yazmanıza gerek yok.
/xml = komutu hangi formatta vereceğini belirtiyoruz.
> C:\websiteler.xml diyerek de oluşturduğu listeyi export etmesini istediğimiz yer.
Şimdi işleme devam edelim. Export ettiğimiz listeye bakalım.
Gördüğünüz gibi C diskine xml olarak atmış durumda ve gördüğünüz gibi tüm detayları ile görüntüleyebiliyorum. Dilerseniz bir Excel de açıp filtreleme yapabilirsiniz.
IIS te AppPoll un Dışarı Aktarılması
Eğer başka bir IIS e import etmek için bunları kullanıyorsanız sadece siteleri aktarmanız yetmez. Birde AppPool daki uygulamaları da doğru bir şekilde aktarmak gerekir.
Tekrar komut satırını yönetici olarak çalıştırıyoruz. Ve bu sefer komutumuzda ufak bir değişiklik yapıyoruz.
%windir%\system32\inetsrv\appcmd list apppool /config /xml > c:\uygulamalar.xml
Eğer tek bir uygulamayı export edecekseniz komut alttaki gibidir.
%windir%\system32\inetsrv\appcmd list apppool “uygulama1” /config /xml > c:\uygulama1.xml
Komutu yazıyoruz ve tekrar belirlediğim klasöre gidip listeme bakıyorum.
Gördüğünüz gibi yine tüm detayları ile birlikte IIS teki AppPool um xml formatında geldi.
Export Edilen Uygulamaların IIS e İmport İşlemi
IIS i silip yeniden yüklüyorum ve allta gördüğünüz gibi sıfır bir IIS ile import etme işlemine başlıyorum.
İmport etmek için komutumuz alttaki gibi. Bu sefer yine komutta ufak bi değişiklik yapıyoruz ve yapacağımız işlemi belirtiyoruz. Add apppool komutu ile site eklemek istediğimi belirtiyorum ve xml in yolunu gösteriyorum.
%windir%\system32\inetsrv\appcmd add apppool /in < c:\uygulamalar.xml
Tek bir uygulama import etmek için de aynı komutu kullanabilirsiniz.
Gördüğünüz gibi export ettiğim AppPool ların hepsi geldi. Burda dikkat etmeniz gereken nokta export ettiğiniz uygulamarı import ederken aynısının import ettiğiniz IIS de tanımlı olmaması gerekmektedir.
Örnek olarak DefaultAppPool otomatik geldiği için hata verecektir. Export ettiğiniz XML dosyasından DefaultAppPool ile ilgili satırı silip tekrar import ettiğinizde sorun çözülecektir.
Export Edilen Websitelerin IIS e İmport İşlemi
Şimdi uygulamalarımızı import ettikten sonra sıra websiteleri import etmeye geldi. Göründüğü gibi IIS te sadece Default Web Site var.
Yine komutumda ufak bir değişiklik yaparak yazıyorum. Yapmak istediğim İşlemi Add Site olarak komutuyla belirtip yolunu gösteriyorum.
%windir%\system32\inetsrv\appcmd add site /in < c:\websites.xml
Tek bir site import etmek için yine aynı komutu kullanabilirsiniz.
Gördüğünüz gibi hata verdi ve siteleri import etmedi. Yukarıda AppPool import işleminde anlattığım gibi Default Web Site zaten var olduğu için import işlemini durdurdu. Gelelim bunu düzeltmeye.
Not defterini yönetici olarak çalıştırıp export ettiğim XML dosyasını açıyorum ve Default Web Site ile ilgili tüm bilgileri siliyorum ve kaydediyorum.
Kaydettikten sonra tekrar komutumu çalıştırıyorum. NOT: uzantısı XML olmaz ise tekrar hata verir.
Gördüğünüz gibi hiçbir hata vermeden bütün siteleri import etti. Bindingler vs tüm ayarlarım geldi.
Bu işlemden sonra siteleriniz aynı ayarlarla kısa bir süre içinde başka bir IIS e taşımış oldunuz. İşinize yaraması dileğiyle.
Kemal
30 Mart 2020 at 14:02
Merhaba,
ekran görüntüleri fotoğrafları gitmiş, uygun olduğunuzda düzeltebilir misiniz.