Bir IIS 7 sitesini başka bir sunucuya nasıl geçirirsiniz?


105

Bir web sitesini başka bir sunucuya taşımak için en iyi uygulamanın ne olduğunu merak ediyorum (tüm ayarlarla birlikte vb.)

  • Siteyi yeni sunucuda manuel olarak yeniden oluşturun (bariz nedenlerden dolayı bakımı yapılamaz)
  • ApplicationHost.config ayarları dosyasını kopyalayın
  • Yedekleme yapmak ve geri yüklemek için appcmd'yi kullanın
  • Siteyi yeni makinede yayınlamak için MSDeploy'u kullanın
  • 3. taraf bir araç kullanın

Sadece başkalarının deneyimlerinin neler olduğunu merak ediyorum.


Microsoft yalnızca Web Dağıtımı'nı önerir (bu araç oluşturulduktan sonra), bu nedenle aşağıdaki yanıtları okumadan önce, hangisinin tamamen kendi sorumluluğunuzda olduğunu bildiğinizden emin olun.
Lex Li

Yanıtlar:


134

Sunucu yapılandırmanızı IIS yöneticisine aktarın derim:

  1. IIS yöneticisinde, Sunucu düğümünü tıklayın
  2. "Yönetim" altında Paylaşılan Yapılandırmaya gidin
  3. "Yapılandırmayı Dışa Aktar" ı tıklayın. (İnternet üzerinden gönderiyorsanız bir şifre kullanabilirsiniz, eğer onları bir USB anahtarı ile taşıyacaksanız endişelenmeyin.)
  4. Bu dosyaları yeni sunucunuza taşıyın

    administration.config
    applicationHost.config
    configEncKey.key 
    
  5. Yeni sunucuda, "Paylaşılan Yapılandırma" bölümüne geri dönün ve "Paylaşılan yapılandırmayı etkinleştir" seçeneğini işaretleyin. Konumu bu dosyaların fiziksel yoluna girin ve uygulayın.

  6. Şifreleme parolasını sormalı (ayarladıysanız) ve IIS'yi sıfırlamalıdır.

BAM! Git bir bira iç!


8
Muhtemelen ben de test etmedim, ancak dosyaları kopyalamak yerine İçe Aktarma Sunucusunu veya Site Paketini kullanmalıyım. Ancak applicationHost.config dosyasında yeni sunucuda bulunması gerekmeyen ve bozulmasına neden olabilecek dosya yolları olduğunu biliyorum. Ayrıca, muhtemelen şu anda IIS'de HİÇBİR sitenin olamayacağını söylemelisiniz, bu nedenle bu işlem şu anda çalışan yapılandırmayı engellemez.
frogstarr78

16
Son adım fazla vurgulanamaz. Kritik seviyede önemli.
Rap

7
IIS'nin daha yeni bir sürümüne geçiyorsanız harika bir fikir değil. Aksi takdirde, bunu yapmanın yolu budur .
Roy Tinker

1
İşe yarayıp
vaso123

1
IIS Paylaşılan Yapılandırması, ayarları makineler arasında taşımanın bir yolu olarak tasarlanmamıştır, bu nedenle, bu yanıtı takiben herhangi bir sorunla karşılaşırsanız, kendinizi ısırın ve başkalarını suçlamayın.
Lex Li

26

MSDeploy, IIS ekibinin önerdiği tüm içeriği, yapılandırmayı vb. Geçirebilir. http://www.iis.net/extensions/WebDeploymentTool

Bir paket oluşturmak için aşağıdaki komutu çalıştırın (Varsayılan Web Sitesini web sitenizin adıyla değiştirin):

msdeploy.exe -verb:sync -source:apphostconfig="Default Web Site" -dest:package=c:\dws.zip > DWSpackage7.log

Paketi geri yüklemek için aşağıdaki komutu çalıştırın:

msdeploy.exe -verb:sync -source:package=c:\dws.zip -dest:apphostconfig="Default Web Site" > DWSpackage7.log

1
Teşekkürler Bill - Aracı görmüştüm ama temkinliydi çünkü hala Beta sürümündeydi.
Kalid

1
2016'da bu hala 'son teknoloji' ama MSDEPLOY 3.6 ile çalışmak gerçekten zor. Umarım bir noktada yeni bir şeyler yaparlar.
Warren P

MSDeploy, siteleri bizim için doğru şekilde aktarmadı. Her bir sitemizin uygulamalarını içeren bir site bulduk, bu nedenle tüm yapı yanlıştı.
brianary

Elbette önerilen yol ve docs.microsoft.com/en-us/iis/publish/using-web-deploy/… ve docs.microsoft.com/en-us/iis/publish/using-web- gibi belgeler budur. deploy /… kullanıcıların dikkat etmeleri gereken gerekli adımları ve kilit noktaları öğrenmeleri için kritik öneme sahiptir. İnternetteki sorunların çoğu makalelerde zaten cevaplanmış durumda. İnsanlar bunun için yeterince zaman harcıyorsa, Web Dağıtımı kullanımı "zor" bir araç değildir.
Lex Li

18

Bir site yapılandırmasını dışa / içe aktarmak için appcmd'yi kullanma konusunda yararlı bir web sitesi. http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/


Bağlantı için teşekkürler. Bu aynı zamanda site kimliğini ve başka herhangi bir şeyi değiştirmeme izin verdi ve 10 farklı uygulama ve 30 farklı sanal dizin kurmak zorunda kalmadım. Büyük zaman tasarrufu
2GDave

Bu yaklaşım, temeldeki bağımlılıklarla (IIS modülleri vb.) İlgilenmediğinden, bunu kendi sorumluluğunuzda kullanın.
Lex Li

12

Microsoft Web Deploy v3 , tüm dosyalarınızı, yapılandırma ayarlarını vb. Dışa ve içe aktarabilir. Tüm bunları yeni sunucuya aktarılmaya hazır bir zip arşivine koyar. Hatta daha yeni IIS sürümlerine (v7-v8) yükseltilebilir.

http://www.iis.net/extensions/WebDeploymentTool

Aracı kurduktan sonra: IIS Yönetim Konsolu'nda sunucunuza veya web sitenize sağ tıklayın, 'Dağıt', 'Uygulamayı Dışa Aktar ...' öğesini seçin ve dışa aktarımı çalıştırın.

Yeni sunucuda, dışa aktarılan zip arşivini aynı şekilde içe aktarın.


ancak tüm dosyaları alır. dosyaları almayı atlamanın bir yolu var mı? Örneğin bir FTP Sunucusunu taşırsanız, tüm dosyaları alıp sıkıştırmaya çalışır.
RayofCommand

2
@RayofCommand - Dağıtım seçeneklerini seçerken "İçerik" listesini temizleyebilirsiniz - bu durumda paket tüm dosyaları içermez.
Zhaph - Ben Duguid

1
Ancak yalnızca site bazında dağıtılırken .... sunucunun tamamı için değil.
Ethan Allen

1
Hedef sunucuya (IIS8) MS Web Dağıtımı yüklendikten sonra, IIS Yönetim Konsolu Web Dağıtımı seçeneklerinden hiçbirini içermez.
brianary

1
Paketi yükledikten sonra "Dağıt" menüsüne de sahip değilim.
Şeytanın Avukatı

3

sitelerden birini veya tümünü dışa aktarmak için appcmd'yi kullanın, ardından yeni sunucuya yeniden içe aktarın. İis7.0 veya 7.5 olabilir. Appcmd kullanarak dışa aktardığınızda, şifrelerin şifresi çözülür, ardından yeniden içe aktarılır ve yeniden şifrelenirler.


3

Rep eksikliği nedeniyle ileti dizisine yorum yapamıyorum. Başka bir yorumcu, daha düşük bir sürümden daha yüksek bir IIS sürümüne geçemeyeceklerini belirtti. Bazı dosyaları birleştirmezseniz bu doğrudur, ancak yaparsanız, IIS 7.5 sitemi çiğnemeler tarafından yayınlanan yanıtı kullanarak IIS 8.0'a taşıdığım gibi yapabilirsiniz.

Dışa aktarma oluşturulduğunda (II7.5), IIS7.5 sunucusundaki kaynaklara başvuruları olan iki anahtar dosya (management.config ve applicationHost.config) vardır. Örneğin, bir DLL, bir ortak anahtar ve 7.5'e özgü sürümle birlikte anılacaktır. Bunlar IIS8 sunucusunda aynı DEĞİLDİR. Özellik yapılandırması da farklı olabilir (benimkinin aynı olmasını sağladım). 8'de 7.5'te asla var olmayacak bazı yeni özellikler var.

İki dosyayı birleştirecek kadar cesursanız - işe yarayacaktır. IIS'yi bir kez kaldırmak zorunda kaldım çünkü berbat ettim ama ikinci seferde aldım.

Bir birleştirme aracı kullandım (Karşılaştırmanın Ötesinde) ve eşdeğer bir şey olmadan büyük bir PITA olurdu - ancak iyi bir fark aracı ile oldukça kolaydı (beş dakika).

Birleştirmeyi yapmak için, bir içe aktarma girişiminden ÖNCE 8.0 dosyalarının dışa aktarılan 7.5 dosyalardan farklı olması gerekir. Çoğunlukla, 8.0 dosyalarının, site / uygulama havuzuna özgü öğeleri bırakırken, dışa aktarılan 7.5 dosyalarındaki sunucuya özgü öğelerin üzerine yazması gerekir.

Administration.config'in neredeyse aynı olduğunu buldum, birçok girişin sürüm bilgisini sans. Bu kolaydı.

ApplicationHost.config'in çok daha fazla farkı vardır. Bazı girişler farklı sıralanır, ancak aksi halde aynıdır, bu nedenle her bir farkı seçip anlamanız gerekir.

7.5 dışa aktarma dosyalarımı birleştirmeden önce System32 \ inetsrv \ config \ Export klasörüne koydum.

Yukarıda bahsettiğim her iki dosya için de System32 \ inetsrv \ config klasöründen System32 \ inetsrv \ config \ Export klasörüne birleştirdim. Siteye özgü etiketler / öğeler (ör. ApplicationPools, customMetadata, siteler, kimlik doğrulama) dışında FROM dosyalarındaki her şeyi aktardım. Özel bir not olarak, saklamam gereken birçok siteye özgü "konum" etiket bloğu da vardı, ancak yeni sunucunun, tutulması gereken sunucuya özgü varsayılanlara sahip kendi "konum" etiket bloğu vardı.

Son olarak, hizmet hesapları kullanıyorsanız, bu önbelleğe alınmış şifrelerin gereksiz olduğunu ve uygulama havuzlarınız için yeniden girilmesi gerekeceğini unutmayın. Sitelerimden hiçbiri başlangıçta çalışmadı, ancak tek gereken tüm uygulama havuzlarımın şifrelerini yeniden girmekti ve ben de çalışmaya başlamıştım.

Yorum yapabilen biri bu yazıyı aşağıya aktarırsa - muhtemelen benim gibi karmaşık yapılandırmalara sahip bir sunucuda birçok siteye sahip olan birine yardımcı olacaktır.

Saygılarımızla,

Stuart


Aslında Stuart'ın yanıtını birleştirilmiş bir geçiş için kullandım, hala MS Web Deploy'u sevmiyorum.
çiğniyor

1

Benim durumumda dosyalar zaten kopyalanmıştı, bu kılavuzdaki adımları izlemenin en kolay yolunu buldum: https://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between -multiple-iis-örnekleri /

AppPools / Web Sitelerini dışa aktardım, xml dosyalarını hedef sunucuya kopyaladım ve AppPools'u sonra Web Sitelerini İçe Aktardım. Çok iyi çalıştı. Bu aynı zamanda bu soru için başka bir mükemmel seçenektir.


bu sadece bana varsayılan uygulama havuzunun ve varsayılan web sitesinin üzerine yazılamayacağını belirten hatalar verdi ... bueno yok.
devlin carnate

Varsayılanları başka bir adla yeniden adlandırmayı deneyin. ve yukarıda açıklanan işlemle oluşturulup oluşturulmadıklarına bakın.
Ralph

Bu, IIS7.5'ten (2008) IIS10'a (2019) gitmem için çalıştı. Appcmd başlangıçta bana zaten var olan 'Varsayılan Web Sitesi'nde hatalar verdi. Yeniden adlandırma işe yaramadı, bu yüzden varsayılan web sitesini sildim. İçe aktarma işlemi daha sonra herhangi bir hata olmadan gerçekleştirildi.
MTAdmin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.