asp.net एक precompiled दृश्य स्टूडियो वेब पेज updatable होने की अनुमति के बीच अंतर क्या है और नहीं है?




vb.net visual-studio (2)

अनचाईंक "इस पूर्वकंपल्ड साइट को अपडेट करने योग्य अनुमति दें"। एस्पैक्स पृष्ठ को संकलित करता है, न कि केवल कोड फ़ाइलें (.वीबी / सीएस)। इसे चेक आउट करने से आपको एस्पैक्स फाइलों में कुछ बदलाव करने की अनुमति मिलती है जब इसे पुनः कंपाइलिंग के बिना तैनात किया जाता है (पूर्व = नियंत्रण की स्थिति को स्थानांतरित करें या कुछ अतिरिक्त HTML मार्कअप जोड़ें)।

तैनाती के मुद्दों के आपके विवरण को पढ़ने के बाद यह अधिक संभावना है कि त्रुटियों की वजह से आईआईएस को ऐप पूल को ताज़ा करना पड़ता है। कम अंत में वीपीएस, कभी-कभी यह आपको उछाल (पुनरारंभ) करने के लिए समझ में आता है अगर आपके पास यह विलासिता है।

साइट प्रीकंपलेशन के बारे में अधिक जानकारी के लिए निम्नलिखित MSDN लेख पढ़ें

http://msdn.microsoft.com/en-us/library/399f057w(v=vs.80).aspx

http://msdn.microsoft.com/en-us/library/ms247286(v=vs.80).aspx

मैंने डिफ़ॉल्ट रूप से एक वेब साइट का निर्माण किया है "इस पूर्वकंपनी साइट को अपडेट करने योग्य बनाने की अनुमति दें" हालांकि हालिया संकलन पर वेबसाइट बहुत टूटी हुई थी। डीएलएल के साथ खेलने के बाद (बिन में, उन्हें हटाने और बदलना) मैंने फिर से काम करने वाली वेबसाइट के कुछ हिस्सों पर गौर किया, लेकिन अगर मैं सभी मूल डाइल करता हूं तो साइट में।

मैं कई अजाक्स वेब एक्सटेंशन के साथ aspx पृष्ठों का उपयोग कर रहा हूँ ये हाल ही में जोड़ा गया था और समस्या का स्रोत हो सकता है। मैंने "इस पूर्वकंपल्ड साइट को अपडेट करने योग्य होने की अनुमति दें" को अनचेक कर दिया है और बिन में सभी प्रकार की अतिरिक्त संकलित कोड फ़ाइलों को जोड़ा, और वेबसाइट के साथ की सभी समस्याएं दूर चली गईं ... यहां क्या हो रहा है? क्या अंतर था?

जिस तरह से मैं साइट को अपडेट करता हूं, उसमें कोई फर्क नहीं पड़ता, या तो प्रत्येक बार दृश्य स्टूडियो से एक सीधे प्रकाशित होता है।

किसी भी अंतर्दृष्टि की सराहना की जाएगी।


नोएलियास ने जो कहा, उसके आधार पर मेरे अपने प्रश्नों के उत्तर हैं। मैंने दो लिंक पढ़ा और निम्न पाया:

केवल तैनाती के लिए प्रीकॉंपिंग
जब आप केवल तैनाती के लिए precompile, संकलक वस्तुतः सभी एएसपी.NET स्रोत फ़ाइलों से असेंबलियों का उत्पादन करता है जो आम तौर पर चलाने के समय संकलित होते हैं। इसमें पृष्ठों, .सीएस और। वीबी वर्ग फ़ाइलों, अन्य कोड फ़ाइलों और संसाधन फ़ाइलों में प्रोग्राम कोड शामिल हैं। कंपाइलर आउटपुट से सभी स्रोत और मार्कअप निकाल देता है। परिणामी लेआउट में, संकलित फाइलें प्रत्येक .aspx फ़ाइलों के लिए उत्पन्न होती हैं (एक्सटेंशन .compiled के साथ) जिसमें उस पृष्ठ के लिए उपयुक्त विधानसभा में पॉइंटर्स होते हैं। वेब साइट को बदलने के लिए, पृष्ठों के लेआउट सहित, आपको मूल फ़ाइलों को बदलना होगा, साइट को पुनः कंपाइल करना और लेआउट को पुनः नियुक्त करना होगा। एकमात्र अपवाद साइट कॉन्फ़िगरेशन है; आप साइट को पुनः कंपाइल किए बिना उत्पादन सर्वर पर Web.config फ़ाइल में परिवर्तन कर सकते हैं। यह विकल्प आपके पृष्ठों की सबसे बड़ी सुरक्षा प्रदान करता है और स्टार्टअप पर सर्वश्रेष्ठ प्रदर्शन प्रदान करता है।

तैनाती और अद्यतन के लिए प्रीकंपिंग
जब आप परिनियोजन और अद्यतन के लिए precompile, संकलक सभी स्रोत कोड (सिंगल-फ़ाइल पृष्ठों में पेज कोड को छोड़कर) और अन्य फ़ाइलों से असेंबली पैदा करता है जो आमतौर पर असेंबली, जैसे संसाधन फ़ाइलों का उत्पादन करते हैं। कंपाइलर .aspx फ़ाइलों को एकल फ़ाइलों में कनवर्ट करता है जो संकलित कोड-पीछे मॉडल का उपयोग करता है और उन्हें लेआउट में प्रतिलिपि बनाता है। यह विकल्प आपको उन्हें संकलित करने के बाद आपकी साइट में एएसपी.नेट वेब पेजों में सीमित परिवर्तन करने में सक्षम बनाता है। उदाहरण के लिए, आप पेजों के नियंत्रण, रंग, फोंट, और अन्य उपस्थिति पहलुओं की व्यवस्था को बदल सकते हैं। आप नियंत्रण जोड़ सकते हैं, जब तक कि उन्हें ईवेंट हैंडलर या अन्य कोड की आवश्यकता न हो। जब साइट पहली बार चलती है, तो मार्कअप से आउटपुट बनाने के लिए एएसपी.नेट आगे संकलन करता है। ध्यान दें

एक पूर्वकंपनीकृत अद्यतन करने योग्य साइट एकाधिक पृष्ठों को उसी कोडफ़ाइल क्लास का संदर्भ देने की अनुमति नहीं देता है।

मैंने हाल ही में 2 एएसपीएक्स पृष्ठों को शामिल करने के लिए परिवर्तन किए हैं जो उसी कोडफ़ाइल (पृष्ठभूमि में वही VB कोड) का संदर्भ देते हैं। प्रत्येक पृष्ठ में थोड़ा भिन्न html गुण होते हैं, लेकिन समान कोडफाइल होने की आवश्यकता होती है, इसलिए मेरे दूसरे एएसपी पेज के लिए मैंने हटाया ऑटो जनरेटेड वीबी कोड फ़ाइल और फिर एचटीएमएल में एक अलग CodeFile संदर्भित

जैसा कि ऊपर बताया गया है, पूर्वकंपनीकृत अपडेट करने योग्य साइट एकाधिक पृष्ठों को एक ही कोड-फ़ाइल वर्ग को संदर्भित करने की अनुमति नहीं देते हैं। यही वजह है कि मेरे कुछ पेज काम नहीं कर रहे थे।

इस बिंदु से, मुझे डिफ़ॉल्ट चेकबॉक्स का उपयोग करने से बचने की आवश्यकता है "इस पूर्वकंपल्ड साइट को अपडेट करने योग्य अनुमति दें"; मेरी वेबसाइट के लिए VB CodeFiles का इस्तेमाल करने के लिए मेरे एकाधिक पेजों को संदर्भित करने के लिए यह अनियंत्रित रहना चाहिए।

निष्कर्ष: एक ही कोडफ़ाइल को संदर्भित करने वाले एकाधिक aspx पृष्ठों को सही ढंग से चलाने के लिए precompiled की आवश्यकता है इसका मतलब यह है कि साइट को फिर से डिप्लोयिंग के बिना कोई भी परिवर्तन नहीं किया जा सकेगा।





precompiled