Visual Studio में App_Data फ़ोल्डर का उपयोग किस लिए किया जाता है?


156

Visual Studio में एक नया ASP.NET अनुप्रयोग बनाते समय, कुछ फ़ाइलों और फ़ोल्डरों को स्वचालित रूप से बनाया जाता है। उन फ़ोल्डरों में से एक को कहा जाता है App_Data

मेनू विकल्प का चयन करके वेबसाइट प्रकाशित करते समय भी Build->Publishएक चेकबॉक्स उपलब्ध है Include files from the App_Data folder

क्या मैं सही मान रहा हूं कि इस फाइल में लगाई गई फाइलें और उसके उप-फ़ोल्डर्स वेब के माध्यम से सुलभ नहीं हैं? उदाहरण के लिए, क्या यह उस फ़ोल्डर संसाधनों में रखना सुरक्षित होगा जिसे मैं केवल एप्लिकेशन कोड द्वारा उपयोग करने का इरादा रखता हूं?

App_Dataफ़ोल्डर का वास्तविक इच्छित उपयोग क्या है ?

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

सभी उत्तर के लिए धन्यवाद। अब तक मिले जवाबों से मुझे ज्यादातर दो बिंदुओं में दिलचस्पी है:

  1. App_Data अनिवार्य रूप से फ़ाइल-आधारित डेटा स्टोर के लिए एक भंडारण बिंदु है
  2. यह वेब द्वारा देखने योग्य नहीं होना चाहिए और वेब ऐप से डेटा स्टोर करने और पढ़ने के लिए एक जगह है

क्या कोई यह निर्दिष्ट कर पाएगा कि "वेब द्वारा देखा नहीं जा सकता" कैसे सुनिश्चित किया जाता है? क्या मैं मानक तैनाती करते समय उस तथ्य पर भरोसा कर सकता हूं, या क्या मुझे सर्वर पर कुछ IIS सेटिंग्स की जांच करने की आवश्यकता है।

उस स्थिति में जब मेरे पास पीडीएफ फाइलों का एक सेट होता है जिसे मैं केवल एप्लिकेशन से एक्सेस करना चाहता हूं। क्या App_Data फ़ोल्डर का उपयोग करने के लिए सही जगह होगी, या क्या मुझे यह सुनिश्चित करने के लिए एक अलग फ़ोल्डर और मैन्युअल रूप से IIS सेट करना चाहिए कि यह वेब पर पहुंच योग्य नहीं है?

जवाबों:


119

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


8
इस उत्तर के लिए धन्यवाद annakata। मुझे लगता है कि जोड़ने के लिए महत्वपूर्ण बिंदु यह है कि App_Data की सामग्री डिफ़ॉल्ट रूप से वेब द्वारा देखने योग्य नहीं है जैसा कि JaredPar द्वारा उल्लिखित है। और यह भी रूप में आप टिप्पणी की, "इस व्यवहार से * .config httphandlers संशोधित किया जा सकता"
padn

क्या app_data फ़ोल्डर में स्थानीय वेब सेवाओं के संदर्भ हैं? मेरा वेब अनुप्रयोग .net F5 रन में ठीक काम करता है। लेकिन वेब सेवाएँ ISS में पैकेजिंग और तैनाती के बाद काम नहीं करती ... :(
bonCodigo

1
साथ ही यह फ़ोल्डर स्थानीय डेटाबेस फ़ाइलों को संग्रहीत करने के लिए उपयोग किया जाता है।
आंद्रेई खोतो

1
एक बात जिसका उल्लेख नहीं किया गया है वह यह है कि जब कोई फ़ाइल बदली जाती है तो IIS वेब प्रक्रिया को रिबूट करता है, लेकिन App_Data को इससे बाहर रखा गया है!
पीटर

43

IIS में, मशीन को हाइलाइट करें, "रिक्वेस्ट फ़िल्टरिंग" पर डबल-क्लिक करें, "हिडन सेगमेंट" टैब खोलें। "App_Data" को एक प्रतिबंधित फ़ोल्डर के रूप में सूचीबद्ध किया गया है। हां मुझे पता है कि यह धागा वास्तव में पुराना है, लेकिन यह अभी भी लागू है।


25

App_data का अभिप्राय वेब की प्रक्रिया के लिए एप्लिकेशन डेटा को संचय करने के लिए है। यह वेब द्वारा देखने योग्य नहीं होना चाहिए और वेब ऐप से डेटा स्टोर करने और पढ़ने के लिए एक जगह है।


7
सिर्फ "नहीं" नहीं करना चाहिए, उस फ़ोल्डर में कुछ भी ASP.NET द्वारा सेवा से अवरुद्ध किया गया है
जॉन शीहान

@ जॉन, मैं इस धारणा के तहत था कि उस व्यवहार को "बदलने" के तरीके थे। हां, निश्चित रूप से ऐसा करने के लिए बुराई है, लेकिन मुझे नहीं पता कि यह कितना आम है या नहीं
JaredPar

यह "देखने योग्य नहीं" कैसे प्राप्त किया जाता है? क्या IIS में App_data फ़ोल्डर की कोई विशिष्ट सेटिंग होगी?
पैड

@पैड, मैं स्टैक के बारे में 100% निश्चित नहीं हूं लेकिन यह या तो IIS या Asp.Net स्टैक में विशेष आवरण है। msdn.microsoft.com/en-us/library/ex526337.aspx
JaredPar

2
iirc इस व्यवहार को * .config httphandlers से संशोधित किया जा सकता है
annakata

15

यह एक एम्बेडेड डेटाबेस, जैसे Sql Server Express, Access, या SQLite डालने का स्थान है।


1
या कोई अन्य डेटा जो साइट उपयोग कर सकती है, उदाहरण के लिए, XML फाइलें (जैसे राज्यों / देशों / आदि की सूची)
जॉन शीहान

1
क्या डेटाबेस तभी है? क्या मैं इसमें कुछ उदाहरण के लिए पीडीएफ फाइलें कह सकता हूं, जिसे मैं केवल सोचा कोड का उपयोग करना चाहता हूं, जैसे Response.TransmitFile विधि का उपयोग करना?
पैड

5
कुछ भी - डेटा की अवधारणा में एक फ़ाइल प्रारूप या प्रारूप निर्दिष्ट नहीं है
annakata

13

App_Data फ़ोल्डर एक फ़ोल्डर है, जिसे आपकी asp.net कार्यकर्ता प्रक्रिया में फ़ाइल sytem अधिकार भी हैं, लेकिन वेब सर्वर के माध्यम से प्रकाशित नहीं किया जाता है।

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

यह आदर्श नहीं है, लेकिन यह एक अच्छी गिरावट है।


10

MSDN में ASP.NET वेब प्रोजेक्ट फ़ोल्डर संरचना के बारे में प्रलेखन से :

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

App_Data में .mdf डेटाबेस फ़ाइलें, XML फ़ाइलें और अन्य डेटा स्टोर फ़ाइलें सहित एप्लिकेशन डेटा फ़ाइलें हैं। App_Data फ़ोल्डर का उपयोग ASP.NET द्वारा एप्लिकेशन के स्थानीय डेटाबेस को संग्रहीत करने के लिए किया जाता है, जैसे कि सदस्यता और भूमिका की जानकारी को बनाए रखने के लिए डेटाबेस। अधिक जानकारी के लिए, सदस्यता और भूमिका प्रबंधन को समझना देखें ।


7

मुख्य उद्देश्य आपके एप्लिकेशन की डेटाबेस फ़ाइल (ओं) को अंदर रखने के लिए है।

और नहीं यह डिफ़ॉल्ट रूप से वेब से पहुंच योग्य नहीं होगा।


7

हम इसे अपलोड की गई सीएसवी फाइलों के लिए एक अस्थायी भंडारण क्षेत्र के रूप में उपयोग करते हैं। अपलोड होने के बाद, एक अजाक्स विधि प्रक्रिया और फ़ाइल को हटा देती है।


6

App_Data के लिए इच्छित उपयोग डेटाबेस से संबंधित फ़ाइल को संग्रहीत करने के लिए है। आमतौर पर SQL सर्वर एक्सप्रेस .mdf फाइलें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.