2009-04-29 15 views
14

मैं विजुअल स्टूडियो 2008 पर वेब परिनियोजन परियोजनाओं का उपयोग कर एक प्रीकंपिल्ड और ऑल-पेज-विलय वेबसाइट तैनात कर रहा हूं। ध्यान दें कि सभी असेंबली और परियोजनाओं को रिलीज मोड में संकलित किया गया है।<compilation debug = "true"> precompiled asp.net वेबसाइट में - क्या इससे कोई फर्क पड़ता है?

मेरे सभी पृष्ठ रिलीज़ मोड में पूर्व-संकलित हैं। तो वे recompiled नहीं किया जाएगा, वे सिर्फ रनटाइम द्वारा लोड किया जाएगा। उस स्थिति में जब पृष्ठ संकलन की आवश्यकता नहीं है, तो system.web में <compilation debug="true"> सेट करना कोई फर्क नहीं पड़ेगा?

उत्तर

26

बाहर चेक नीचे उत्कृष्ट लिंक:

असल:

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

उपरोक्त में से कोई भी वांछनीय नहीं है। आपको उपरोक्त लिंक में अधिक नुकसान मिलेगा।

+1

अच्छी कॉल, मैं कैश/टाइमआउट मतभेदों के बारे में भूल गया। –

+0

@Aras: मेरे सभी पृष्ठ रिलीज़ मोड में पूर्व-संकलित हैं। तो वे recompiled नहीं किया जाएगा, वे सिर्फ रनटाइम द्वारा लोड किया जाएगा। उस स्थिति में जब पृष्ठ संकलन की आवश्यकता नहीं है, तो क्या यह अभी भी अंतर करेगा? –

2

को documentation अनुसार:

निर्दिष्ट खुदरा बाइनरी

हालांकि डिबग बाइनरी बजाय संकलित करने के लिए है कि क्या होने बस जल्दी से System.Web के माध्यम से परिलक्षित होता है, मैं डिबग ध्वज देख सकते हैं प्रयोग किया जाता है (प्रत्यक्ष या परोक्ष) द्वारा निम्न:

  • क्रम संकलन (ASPX/ASCX/मास्टर)
  • ब्राउज़र क्षमताओं संहिता पीढ़ी फ़ाइलें
  • HttpDebugHandler है, जो एक डिबगिंग सत्र

नतीजतन दौरान प्रयोग किया जाता है, यदि आपकी साइट precompiled है आप एक प्रदर्शन हिट प्राप्त नहीं होगा। हालांकि, जैसा कि Http अनुप्रयोग DEBUG http क्रिया का जवाब देगा, आप स्वयं को सुरक्षा समस्याओं तक खुलते हैं।

संक्षेप में, डीबग = झूठी सेट करें, भले ही आपकी साइट प्रीकंपल हो।

संपादित करें: डिबग = true एक प्रदर्शन में परिणाम होगा (Mehmet Aras के जवाब देखें) कैशिंग और कोई निष्पादन समय समाप्ति के लिए मारा, लेकिन यह संकलित पृष्ठों के लिए निष्पादन की गति को कम नहीं करेंगे।

2
ब्लॉग पोस्ट ASP.Net – Never again fear publishing your website with debug=true से

:

  • एएसपी का संकलन।नेट पृष्ठों (के रूप में बैच संकलन बंद होता है)
  • कोड आम तौर पर कार्यान्वित धीमी
  • मेमोरी पदचिह्न
  • स्क्रिप्ट और छवियों WebResources.axd हैंडलर कैश नहीं कर रहे हैं
  • अनुरोध से डाउनलोड बढ़ जाती है समय लेता है समय के लिए बाहर नहीं है (यह बुरा है, उत्पादन परिवेश में के रूप में हम न चाहते अनुरोध अनिश्चित काल के लिए फंस गया)

लेख पर चला जाता है उत्पादन सर्वर machine.config की स्थापना खुदरा तैनाती मोड सुनिश्चित करने के लिए सिफारिश करने के लिए मजबूर किया जाता है जो अनिवार्य रूप से मतलब डिबग है हमेशा झूठा

+0

मेरे पास रिलीज मोड में एक पूर्व-संकलित तैनाती है! –

+1

आप अभी भी एक प्रदर्शन प्रभाव प्राप्त कर सकते हैं, खासकर उपरोक्त अंतिम दो बिंदुओं के संबंध में। –

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