आप IIS 7 साइट को किसी अन्य सर्वर पर कैसे स्थानांतरित करते हैं?


105

मैं सोच रहा हूं कि किसी वेबसाइट को दूसरे सर्वर पर ले जाने के लिए (सभी सेटिंग्स के साथ, आदि) का सबसे अच्छा अभ्यास क्या है।

  • नए सर्वर पर मैन्युअल रूप से साइट को फिर से बनाएँ (स्पष्ट कारणों के लिए बनाए रखने योग्य नहीं)
  • ApplicationHost.config सेटिंग फ़ाइल को कॉपी करें
  • बैकअप बनाने और पुनर्स्थापित करने के लिए appcmd का उपयोग करें
  • नई मशीन पर साइट प्रकाशित करने के लिए MSDeploy का उपयोग करें
  • एक 3 पार्टी उपकरण का उपयोग करें

बस यह सोचकर कि दूसरों के अनुभव क्या रहे हैं।


Microsoft केवल वेब परिनियोजन की अनुशंसा करता है (इस उपकरण के बनने के बाद), इसलिए इससे पहले कि आप नीचे दिए गए उत्तर पढ़ रहे हों, सुनिश्चित करें कि आप जानते हैं कि आप अपने जोखिम पर पूरी तरह से हैं।
लेक्स ली

जवाबों:


134

मैं कहता हूँ कि IIS प्रबंधक में आपके सर्वर का विन्यास निर्यात करें:

  1. IIS प्रबंधक में, सर्वर नोड पर क्लिक करें
  2. "प्रबंधन" के तहत साझा कॉन्फ़िगरेशन पर जाएं
  3. "निर्यात कॉन्फ़िगरेशन" पर क्लिक करें। (यदि आप उन्हें इंटरनेट पर भेज रहे हैं, तो आप पासवर्ड का उपयोग कर सकते हैं, यदि आप उन्हें USB कुंजी के माध्यम से स्थानांतरित करने जा रहे हैं, तो इसे पसीना न करें।)
  4. इन फ़ाइलों को अपने नए सर्वर पर ले जाएं

    administration.config
    applicationHost.config
    configEncKey.key 
    
  5. नए सर्वर पर, "साझा कॉन्फ़िगरेशन" अनुभाग पर वापस जाएं और "साझा कॉन्फ़िगरेशन सक्षम करें" जांचें। इन फ़ाइलों के लिए भौतिक पथ में स्थान दर्ज करें और उन्हें लागू करें।

  6. यह एन्क्रिप्शन पासवर्ड के लिए संकेत देना चाहिए (यदि आप इसे सेट करते हैं) और IIS रीसेट करें।

BAM! जाओ एक बीयर है!


8
शायद फाइलों को कॉपी करने के बजाय केवल आयात सर्वर या साइट पैकेज का उपयोग करना चाहिए, हालांकि मैंने यह परीक्षण नहीं किया है। लेकिन मुझे पता है कि ApplicationHost.config में फ़ाइल पथ हैं जो आवश्यक रूप से नए सर्वर पर मौजूद नहीं होंगे, जिससे यह टूट जाएगा। इसके अलावा, आपको शायद यह उल्लेख करना चाहिए कि वर्तमान में IIS में कोई साइट नहीं हो सकती है, इसलिए यह प्रक्रिया वर्तमान में चल रहे कॉन्फ़िगरेशन को क्लोब नहीं करती है।
मेंढक

16
अंतिम चरण को अधिकता नहीं दी जा सकती है। गंभीर रूप से महत्वपूर्ण।
रैप

7
यदि आप IIS के नए संस्करण में माइग्रेट कर रहे हैं, तो यह एक महान विचार नहीं है। अन्यथा, यह ऐसा करने का तरीका है।
रॉय टिंकर

1
मैं सोच रहा था कि यह काम कर सकता है, क्योंकि यह नहीं होना चाहिए: docs.microsoft.com/en-us/iis/manage/…
vaso123

1
IIS शेयर्ड कॉन्फ़िगरेशन को मशीनों में सेटिंग्स को स्थानांतरित करने के तरीके के रूप में डिज़ाइन नहीं किया गया था, इसलिए यदि आप इस उत्तर के बाद किसी भी मुद्दे को मारते हैं, तो अपने आप को काट लें और किसी अन्य को दोष न दें।
लेक्स ली

25

MSDeploy IIS सामग्री की सिफारिश करने वाली सभी सामग्री, कॉन्फ़िगरेशन आदि को माइग्रेट कर सकता है। http://www.iis.net/extensions/WebDeploymentTool

पैकेज बनाने के लिए, निम्न कमांड चलाएँ (डिफ़ॉल्ट वेब साइट को अपने वेब साइट नाम से बदलें):

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

पैकेज को पुनर्स्थापित करने के लिए, निम्न कमांड चलाएँ:

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

1
धन्यवाद बिल - मैंने टूल देखा था लेकिन सावधान था क्योंकि यह अभी भी बीटा में था।
कालिड

1
2016 में यह अभी भी 'कला की स्थिति' है लेकिन MSDEPLOY 3.6 के साथ काम करना वास्तव में मुश्किल है। मुझे उम्मीद है कि वे कुछ बिंदु पर कुछ नया करेंगे।
वॉरेन पी

MSDeploy ने हमारे लिए साइटों को सही तरीके से स्थानांतरित नहीं किया। हमने अपनी प्रत्येक साइट के अनुप्रयोगों वाली एक साइट को समाप्त कर दिया, इसलिए पूरी संरचना गलत थी।
briary

निश्चित रूप से यह अनुशंसित तरीका है, और दस्तावेज़ जैसे docs.microsoft.com/en-us/iis/publish/use-web-deploy/… और docs.microsoft.com/en-us/iis/publish/use/web- तैनाती / ... उपयोगकर्ताओं के लिए आवश्यक कदम और प्रमुख बिंदुओं पर ध्यान देने के लिए आवश्यक हैं जो उन पर ध्यान देने की आवश्यकता है। इंटरनेट पर अधिकांश मुद्दे पहले से ही लेखों में उत्तर दिए गए हैं। यदि लोग ऐसे समय पर पर्याप्त समय व्यतीत करते हैं, तो वेब डिप्लो उपयोग करने के लिए एक "मुश्किल" उपकरण नहीं है।
लेक्स ली

18

साइट कॉन्फ़िगरेशन को निर्यात / आयात करने के लिए appcmd का उपयोग करने पर यहाँ एक उपयोगी वेबसाइट है। http://www.microsoftpro.nl/2011/01/27/exporting-and-importing-sites-and-app-pools-from-iis-7-and-7-5/


लिंक के लिए धन्यवाद। इससे मुझे साइट आईडी और अन्य कुछ भी संशोधित करने की अनुमति मिली और मुझे 10 अलग-अलग एप्लिकेशन और 30 अलग-अलग वर्चुअल निर्देशिकाएं सेट करने की आवश्यकता नहीं थी। बिग टाइम सेवर
2GDave

जैसा कि यह दृष्टिकोण अंतर्निहित निर्भरता (IIS मॉड्यूल और इतने पर) का कोई ध्यान नहीं रखता है, इसे अपने जोखिम पर उपयोग करें।
लेक्स ली

12

Microsoft वेब परिनियोजन v3 आपकी सभी फ़ाइलों, कॉन्फ़िगरेशन सेटिंग्स आदि को निर्यात और आयात कर सकता है, यह सभी को नए सर्वर पर आयात करने के लिए तैयार ज़िप संग्रह में डालता है। यह IIS (v7-v8) के नए संस्करणों में भी अपग्रेड कर सकता है।

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

टूल इंस्टॉल करने के बाद: IIS प्रबंधन कंसोल में अपने सर्वर या वेबसाइट पर राइट क्लिक करें, 'Deploy', 'Export Application ...' चुनें और एक्सपोर्ट के माध्यम से चलाएँ।

नए सर्वर पर, उसी तरह से निर्यात किए गए ज़िप संग्रह को आयात करें।


लेकिन यह सभी फाइलों को लेता है। फ़ाइलों को ले जाने के लिए एक तरीका है? यदि आप उदाहरण के लिए एक एफ़टीपी सेवारत करते हैं तो यह सभी फाइलों को लेने और उन्हें ज़िप करने की कोशिश करता है।
रायओफकमैंड

2
@RayofCommand - परिनियोजन विकल्पों का चयन करते समय, आप "सामग्री" सूची को साफ़ कर सकते हैं - फिर पैकेज में सभी फाइलें शामिल नहीं हैं।
झाफ - बेन ड्यूगिड

1
लेकिन केवल साइट-दर-साइट पर तैनाती करते समय .... संपूर्ण सर्वर चाल के लिए नहीं।
एथन एलन

1
गंतव्य सर्वर (IIS8) पर MS वेब परिनियोजन स्थापित करने के बाद, IIS प्रबंधन कंसोल में कोई भी वेब परिनियोजन विकल्प नहीं है।
२१:११ बजे briary

1
पैकेज स्थापित करने के बाद मेरे पास कोई "तैनाती" मेनू भी नहीं है।
डेविल्स एडवोकेट

3

एक या सभी साइटों को फिर से नए सर्वर में पुन: निर्यात करने के लिए appcmd का उपयोग करें। यह iis7.0 या 7.5 हो सकता है जब आप अप्पम का उपयोग करके निर्यात करते हैं, तो पासवर्ड को डिक्रिप्ट किया जाता है, फिर रिइम्पोर्ट करें और वे फिर से क्रिप्टोकरेंसी करेंगे।


3

मैं प्रतिनिधि की कमी के कारण धागा टिप्पणी नहीं कर सकता। एक अन्य टिप्पणीकार ने कहा कि वे IIS के उच्च संस्करण के निचले संस्करण से माइग्रेट नहीं कर सकते। यदि आप कुछ फ़ाइलों को मर्ज नहीं करते हैं, तो यह सच है, लेकिन अगर आप ऐसा करते हैं तो मैं बस अपने IIS 7.5 साइट को IIS 8.0 पर माइग्रेट करता हूं, जो कि चीयर्स द्वारा पोस्ट किए गए उत्तर का उपयोग करता है।

जब निर्यात (II7.5) बनाया जाता है, तो दो मुख्य फाइलें होती हैं (एडमिनिस्ट्रेशन.कॉन्फिग और एप्लीकेशनहॉस्ट.कॉनफिग) जिसमें IIS7.5 सर्वर पर संसाधनों का संदर्भ होता है। उदाहरण के लिए, एक DLL को सार्वजनिक कुंजी और संस्करण 7.5 के साथ निर्दिष्ट किया जाएगा। ये IIS8 सर्वर पर समान नहीं हैं। फीचर कॉन्फ़िगरेशन अलग-अलग हो सकता है (मुझे सुनिश्चित है कि मेरा समान था)। 8 में कुछ नई विशेषताएं हैं जो 7.5 में कभी भी मौजूद नहीं होंगी।

यदि आप दो फ़ाइलों को मर्ज करने के लिए पर्याप्त बहादुर हैं - यह काम करेगा। मुझे एक बार IIS को अनइंस्टॉल करना पड़ा क्योंकि मैंने इसे गड़बड़ कर दिया, लेकिन दूसरी बार मिला।

मैंने एक मर्ज टूल (बियॉन्ड कम्पेयर) का इस्तेमाल किया और बिना कुछ समतुल्य के यह एक बड़ा पीटीए होगा - लेकिन एक अच्छे डिफेंस टूल (पांच मिनट) के साथ यह बहुत आसान था।

मर्ज करने के लिए, 8.0 फ़ाइलों को निर्यात की गई 7.5 फ़ाइलों के मुकाबले अलग करने की आवश्यकता होती है, इससे पहले कि आयात का प्रयास किया जाता है। अधिकांश भाग के लिए, साइट / ऐप पूल के विशिष्ट सामान को छोड़कर, 8.0 फ़ाइलों को निर्यात की गई 7.5 फ़ाइलों में सर्वर विशिष्ट सामान को अधिलेखित करने की आवश्यकता होती है।

मैंने पाया कि प्रशासन .config लगभग समान था, जिसमें कई प्रविष्टियों की संस्करण जानकारी थी। यह एक आसान था।

ApplicationHost.config में बहुत अधिक अंतर हैं। कुछ प्रविष्टियों को अलग तरीके से आदेश दिया जाता है, लेकिन अन्यथा समान है, इसलिए आपको प्रत्येक अंतर को चुनना होगा और इसका पता लगाना होगा।

मैंने मर्ज करने से पहले अपने 7.5 एक्सपोर्ट फाइल को System32 \ inetsrv \ config \ Export फोल्डर में डाल दिया।

मैंने फ़ोल्डर से प्राप्त किया है System32 \ inetsrv \ config फ़ोल्डर में System32 \ inetsrv \ config \ निर्यात दोनों फाइलों के लिए जिसका मैंने ऊपर उल्लेख किया है। मैंने साइट विशिष्ट टैग / तत्वों (जैसे ApplicationPools, customMetadata, साइटों, प्रमाणीकरण) को छोड़कर FROM फ़ाइलों में सब कुछ पर धकेल दिया। विशेष नोट में, कई साइट विशिष्ट "स्थान" टैग ब्लॉक भी थे जिन्हें मुझे रखना था, लेकिन नए सर्वर का अपना "स्थान" टैग ब्लॉक था जिसमें सर्वर विशिष्ट चूक थी।

अंत में, ध्यान दें कि यदि आप सेवा खातों का उपयोग करते हैं, तो ये कैश्ड पासवर्ड रद्दी हैं और आपको अपने ऐप पूल के लिए फिर से दर्ज करना होगा। मेरी किसी भी साइट ने शुरू में काम नहीं किया था, लेकिन जो भी आवश्यक था, वह मेरे सभी ऐप पूल के पासवर्ड को फिर से दर्ज कर रहा था और मैं ऊपर और चल रहा था।

यदि कोई टिप्पणी कर सकता है जो इस पोस्ट को थ्रेड डाउन का उल्लेख कर सकता है - यह शायद मेरे जैसे किसी और व्यक्ति की मदद करेगा, जिसके पास जटिल कॉन्फ़िगरेशन वाले एक सर्वर पर कई साइटें हैं।

सादर,

स्टुअर्ट


मैंने वास्तव में स्टुअर्ट के उत्तर को एक विलय प्रवास के लिए उपयोग किया था, मुझे अभी भी एमएस वेब डिप्लॉय पसंद नहीं है।
chews

1

मेरे मामले में, फाइलें पहले से ही कॉपी थीं, मुझे इस गाइड में चरणों का पालन करने का सबसे आसान तरीका मिला: https://www.ryadel.com/en/exporting-importing-app-pools-and-websites-configuration-between एकाधिक-आईआईएस-उदाहरणों /

मैंने AppPools / We निर्यात किया, गंतव्य सर्वर के लिए xml फ़ाइलों की प्रतिलिपि बनाई और AppPools फिर वेबसाइटों को आयात किया। बहुत अच्छा काम किया। यह भी इस सवाल का एक और उत्कृष्ट विकल्प है।


इसने मुझे यह बताते हुए त्रुटि दी कि डिफ़ॉल्ट ऐप पूल और डिफ़ॉल्ट वेब साइट को अधिलेखित नहीं किया जा सकता है ... कोई बीनो नहीं।
डेविन कार्नेट

किसी और चीज़ में चूक का नाम बदलने का प्रयास करें? और देखें कि क्या वे ऊपर बताई गई प्रक्रिया से निर्मित होते हैं?
राल्फ

इसने मेरे लिए IIS7.5 (2008) से IIS10 (2019) तक काम किया। Appcmd ने शुरुआत में मुझे पहले से मौजूद 'डिफ़ॉल्ट वेब साइट' पर त्रुटियाँ दीं। नाम बदलने से काम नहीं चला, इसलिए मैंने डिफ़ॉल्ट वेबसाइट को हटा दिया। फिर आयात बिना किसी त्रुटि के हुआ।
MTAdmin
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.