2008-09-15 12 views
6

हम वर्तमान में डेटाबेस बनाने और क्वेरी विश्लेषक के माध्यम से SQL स्क्रिप्ट चलाने के द्वारा वेब अनुप्रयोगों को तैनात करते हैं। फिर हम आउटपुट को "वेबसाइट प्रकाशित करें" से कॉपी करते हैं और आईआईएस में उस वेबसाइट को सेट करते हैं।एएसपी.Net वेब अनुप्रयोगों को तैनात करने के अच्छे तरीके क्या हो सकते हैं?

हमने विजुअल स्टूडियो में वेबसेट देखा है, लेकिन वह हिस्सा पतला दस्तावेज प्रतीत होता है। उदाहरण के लिए, हम स्पष्ट नहीं हैं कि उपयोगकर्ता को SQL सर्वर के आईपी और पासवर्ड के लिए कैसे पूछना है। हम http://example.com की बजाय http://example.com/project जैसे फ़ोल्डर्स के तहत आने वाले वेबसाइटों को इस तरह से तैनात करते हैं।

फिर AJAX.Net इंस्टॉल नहीं किए जा रहे हैं या कुछ या अन्य पैच लागू नहीं हैं।

अब तक, हमारे पास सर्वर तक भौतिक पहुंच है। बहुत जल्द हालांकि हम सीडीरॉम शिपिंग करने जा रहे हैं। मैन्युअल हस्तक्षेप और स्वचालन के बीच व्यावहारिक व्यापार क्या है?

उत्तर

7

विजुअल स्टूडियो परिनियोजन से बचें, और जितना संभव हो सके स्वचालित करें। वेब परिनियोजन परियोजनाएं और NANT आपके मित्र हो सकते हैं!

संक्षेप में, हमारे तैनाती स्थापना:

  1. हम देव और जीने डेटाबेस के बीच अंतर करने के लिए स्क्रिप्ट Redgate एसक्यूएल का उपयोग करें।

  2. एक एनएएनटी बिल्ड फ़ाइल जो एमएसबीयूआईएलडी को वेब परिनियोजन प्रोजेक्ट (.wdproj) बनाने के लिए कॉल करती है, परिणामी संकलित वेब ऐप (एसक्यूएल चेंज स्क्रिप्ट के साथ) को ज़िप देती है और फिर ज़िप फ़ाइल को सर्वर पर अपलोड करती है।

  3. सर्वर की ओर, एक और NAnt बिल्ड फ़ाइल है जो एप्लिकेशन को ऑफ़लाइन ले जाती है, डेटाबेस का बैक अप लेती है, वेबसाइट का बैक अप लेती है। एसक्यूएल चेंज स्क्रिप्ट चलाता है, नया संस्करण अनजिप करता है और ऐप ऑनलाइन लाता है।

चरण 3 आमतौर पर "मैन्युअल" (एक डबल-क्लिक) चलाता है, लेकिन कभी-कभी देर रात के लिए निर्धारित होता है। आप सीडीरॉम से बिल्कुल वही कर सकते हैं, या यहां तक ​​कि एक रैपर के रूप में एक बहुत ही छोटा विंडोज फॉर्म ऐप भी लिख सकते हैं।

यदि आप रुचि रखते हैं तो NANT स्क्रिप्ट का ब्योरा देने के लिए बहुत खुश हैं।

+0

क्या आपकी एनएएनटी फाइलों को देखना संभव है? –

+0

यदि संभव हो, तो कृपया हमें NANT फ़ाइलों पर नज़र डालें। धन्यवाद। – codegasm

2

क्या आपने Web Deployment प्रोजेक्ट का उपयोग करने का प्रयास किया है? VS 2008 के लिए अब भी समर्थन है ..

+1

वेब तैनाती परियोजना मुझे डेटाबेस सिंक मदद नहीं करता है। वेब परिनियोजन प्रोजेक्ट के बारे में अच्छी बात यह है कि यह निर्माण के दौरान और त्रुटियों को अनवरोधित करता है। –

+0

प्रतिक्रिया के लिए धन्यवाद। मैं यहां भी पोस्ट रखूंगा। शायद किसी और के लिए उपयोगी। –

0

मैं ज्यादातर एएसपी.NET ऐप्स को लिनक्स सर्वर पर तैनात करता हूं।यहाँ मेरी मानक कार्यप्रवाह है: नवीनतम कोड बाहर

  • चेकों:

    • मैं एक स्रोत कोड रिपोजिटरी (सबवर्सन की तरह)
    • सर्वर पर उपयोग करते हैं, मुझे लगता है कि निम्नलिखित करता है एक bash स्क्रिप्ट है
    • निर्माण (बनाता DLLs)
    • फ़ाइलों अनिवार्य करने के लिए नीचे फ़िल्टर
    • बैक्स अप डेटाबेस
    • 01 (उदाहरण के लिए कोड फ़ाइलों को हटाता है) करता है
    • आज की तारीख
    • साथ नाम की एक निर्देशिका में वेब सर्वर पर फ़ाइलें Deploys डेटाबेस अपडेट करता है, तो एक नया स्कीमा तैनाती में शामिल है
    • नई स्थापना डिफ़ॉल्ट एक तो यह अगले के साथ परोसा जाएगा बनाता है हिट

चेकआउट सबवर्सन के कमांड लाइन संस्करण के साथ किया जाता है और इमारत xbuild साथ किया जाता है (मोनो परियोजना से MSBuild काम एक जैसे)। अधिकांश जादू रिलीज में किया जाता है।

मेरे देव सर्वर पर मुझे अनिवार्य रूप से निरंतर एकीकरण है लेकिन उत्पादन पक्ष पर मैं वास्तव में सर्वर में एसएसएच और स्क्रिप्ट चलाने के द्वारा मैन्युअल रूप से तैनाती शुरू करता हूं। मेरी स्क्रिप्ट को चतुराई से 'तैनाती' कहा जाता है, इसलिए मैं बैश प्रॉम्प्ट पर टाइप करता हूं। मैं बहुत रचनात्मक हूं। नहीं।

उत्पादन में, मुझे दो बार 'तैनाती' टाइप करना होगा: एक बार दिनांकित निर्देशिका में चेक-आउट, बिल्ड और तैनाती करने के लिए और एक बार उस निर्देशिका को डिफ़ॉल्ट उदाहरण बनाने के लिए। चूंकि निर्देशिका दिनांकित हैं, इसलिए मैं प्रासंगिक निर्देशिका में से 'तैनाती' टाइप करके किसी भी पिछली परिनियोजन पर वापस जा सकता हूं।

आरंभिक तैनाती में कुछ मिनट लगते हैं और पूर्व संस्करण में रिवर्सन कुछ सेकंड लेता है।

यह मेरे लिए एक अच्छा समाधान किया गया है और केवल तीन कमांड लाइन उपयोगिताओं (SVN, xbuild, और releaseit), डीबी ग्राहक, SSH, और बैश पर निर्भर करता है है।

मैं वास्तव में कुछ समय CodePlex पर ReleaseIt की प्रतिलिपि को अपडेट करने की जरूरत है:

http://releaseit.codeplex.com/

संबंधित मुद्दे

 संबंधित मुद्दे