Web.Debug.config और Web.Release.Config फ़ाइलों के लिए क्या हैं?


111

मैं सिर्फ Visual Studio 2010 और MVC 2.0 में अपग्रेड किया गया और मैंने देखा कि Web.config के पास दो अतिरिक्त फाइलें हैं? क्या ये फाइलें डिबग को निर्दिष्ट करने और विशिष्ट सेटिंग्स को जारी करने के लिए उपयोग की जाती हैं, इसलिए आप मुख्य Web.config को बंद नहीं करते हैं?

क्या यह भी समझ में आता है कि अगर मैं डिबग में एक स्थानीय और दूरस्थ एक है और क्रमशः Web.configs जारी करता हूं, तो रूट Web.config फ़ाइल में एक कनेक्शन स्ट्रिंग रखें।

धन्यवाद!

जवाबों:


97

यह विज़ुअल स्टूडियो 2010 का नया वेब.कॉन्फिग ट्रांसफ़ॉर्मेशन फ़ीचर है। अधिक जानकारी यहाँ


संपादित करें:

क्या ये फाइलें डिबग को निर्दिष्ट करने और विशिष्ट सेटिंग्स को जारी करने के लिए उपयोग की जाती हैं, इसलिए आप मुख्य web.config को अव्यवस्थित नहीं करते हैं?

यह तीन फाइलों तक सीमित नहीं है, आप (सिद्धांत रूप में) आपके पास जितनी फाइलें हैं, आपके पास उतना ही वातावरण है। "शीर्ष स्तर" Web.config आपके वेब कॉन्फ़िगरेशन का एक टेम्पलेट प्रदान करता है। इसके अंतर्गत फाइलें प्रतिस्थापन वातावरण के लिए विशिष्ट मान प्रदान करती हैं (जैसे कि यदि आपके पास स्थानीय / मंच / परीक्षण / जो कुछ के लिए अलग-अलग कनेक्शन स्ट्रिंग हैं)।

क्या यह भी रूट web.config फ़ाइल में एक कनेक्शन स्ट्रिंग को रखने के लिए समझ में आता है अगर मेरे पास क्रमशः डिबग और रिलीज़ web.configs में एक स्थानीय और दूरस्थ एक है।

यह केवल तभी समझ में आता है जब यह पर्यावरण के बीच बदलने वाला नहीं था। आपके मामले में ऐसा लगता है कि यह आपके मामले में ऐसा नहीं है, यह Web.config में छोड़ने का कोई मतलब नहीं होगा।


12
यह सुविधा 4 साल बाद भी आधी पकी हुई है! यह केवल तभी काम करता है जब azure / प्रकाशन पैकेजों को तैनात किया जाता है। यहाँ एक दिलचस्प धागा है: मंचों .asp.net
Nick

12

ये Web.config ट्रांसफ़ॉर्मेशन फ़ाइल हैं। ASP.NET वेब विज़ुअल स्टूडियो के उपयोग से तैनाती: Web.config फ़ाइल रूपांतरण :

Web.config फ़ाइल सेटिंग्स को बदलने की प्रक्रिया को स्वचालित करने के दो तरीके हैं: Web.config रूपांतरण और वेब परिनियोजन पैरामीटर। एक Web.config रूपांतरण फ़ाइल में XML मार्कअप होता है जो निर्दिष्ट करता है कि जब यह तैनात है तो Web.config फ़ाइल को कैसे बदलना है। आप विशिष्ट बिल्ड कॉन्फ़िगरेशन और विशिष्ट प्रकाशित प्रोफ़ाइल के लिए अलग-अलग परिवर्तन निर्दिष्ट कर सकते हैं। डिफ़ॉल्ट बिल्ड कॉन्फ़िगरेशन डीबग और रिलीज़ हैं, और आप कस्टम बिल्ड कॉन्फ़िगरेशन बना सकते हैं। एक प्रकाशित प्रोफ़ाइल आमतौर पर एक गंतव्य वातावरण से मेल खाती है।


1

यदि किसी को दिलचस्पी है, तो यहां कुछ ऐसा है जो मैंने लिखा है कि प्रति वातावरण एक गतिशील कनेक्शन स्ट्रिंग है। मैं किसी भी वातावरण में कोड को तैनात करना चाहता था (देव, टेस्ट, प्री-प्रोडक्ट, प्रोडक्ट ...) बिना कनेक्शन स्ट्रिंग्स के चिंता करने के। मैं वास्तव में Asp.Net MVC 4 के साथ ऐसा करने का एक अच्छा तरीका नहीं खोज सका, इसलिए मैं अपने तरीके से प्रति वातावरण फ़ाइल पर भरोसा करने का अपना तरीका लेकर आया।

एक बेहतर समाधान हो सकता है, मैं एक विकेट / जावा पृष्ठभूमि से आता हूं और हाल ही में एमवीसी 4 के साथ विकसित करना शुरू कर दिया है, इसलिए यह संभव है कि एक बेहतर समाधान मौजूद हो। लेकिन यहाँ एक गतिशील कनेक्शन स्ट्रिंग के लिए मेरे प्रश्न और उत्तर की एक कड़ी है:

Asp.net MVC 4 गतिशील कनेक्शन स्ट्रिंग


-3

वी। एस। में कुछ लंबी जरूरत थी। दुर्भाग्य से कार्यान्वयन के साथ एक समस्या है। उदाहरण के लिए इस परिदृश्य पर विचार करें (VS.2010 अंतिम, सभी एसपी):

Web.Config

  • कनेक्शन कनेक्शन अनुभाग नहीं
  • पूर्ण सदस्यता उपयोगकर्ता / भूमिका / आदि। कनेक्शन कॉन्फ़िगरेशन का उपयोग करके प्रदाता कॉन्फ़िगरेशन = "परीक्षण"

Web.Release.Config

  • कोई सदस्यता कॉन्फ़िगरेशन (पहले से ही मुख्य web.config में निर्दिष्ट)
  • "टेस्ट" नाम के सीएस सहित कनेक्शनस्ट्रीमर्स अनुभाग

Web.Debug.Config

  • कोई सदस्यता कॉन्फ़िगरेशन (पहले से ही मुख्य web.config में निर्दिष्ट)
  • "टेस्ट" नाम के सीएस सहित कनेक्शनस्ट्रीमर्स अनुभाग

आवेदन निष्पादित करते समय निम्नलिखित त्रुटि देता है:

कनेक्शन कॉन्फ़िगरेशन में कनेक्शन नाम 'टेस्ट' नहीं मिला या कनेक्शन स्ट्रिंग खाली है।

दूसरे शब्दों में, क्योंकि कनेक्शन स्ट्रिंग तत्व रिलीज़ / डिबग डिजाइनर फ़ाइलों में हैं और मुख्य (Web.config) फ़ाइल में कॉन्फ़िगरेशन तत्वों द्वारा उपयोग किया जाता है, यह इसे हल करने में असमर्थ है।


5
निष्पक्ष होने के लिए, यदि आपके पास testआपके डिबग और रिलीज़ कॉन्फ़िगर फ़ाइलों दोनों में एक कनेक्शन स्ट्रिंग है , तो यह वास्तव में मुख्य web.config में होना चाहिए जिसमें उपयुक्त अनुभाग टेम्प्लेट किए गए हों। जैसा कि, आप कोड को डुप्लिकेट कर रहे हैं, जो कि कुछ है जो आपके लिए हल करना चाहिए।
R0MANARMY

3
-1: यह बहुत पुराना पोस्ट वेब कॉन्फ़िगरेशन परिवर्तनों का उपयोग करने की पूरी गलत व्याख्या थी। 1 यह वास्तव में एक उत्तर नहीं है (सिर्फ एक गलत शिकायत है) और 2 यह तत्वों का एक सरल मर्ज नहीं है जैसा कि यहां निहित है। आपके पास स्पष्ट xsltप्रतिस्थापित आदेश हैं। अच्छी तरह से इन परिवर्तन फ़ाइलों के बारे में भ्रम के लिए कहते हैं कि कुछ के लिए 5 upvotes हो रहा है :)
चला गया कोडिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.