2009-10-05 6 views
5

मैं Server.MapPath() विधि im के लिए एक वर्चुअल निर्देशिका मैं अपनी भौतिक पथ के लिए बनाई गई मैप करने के लिए उपयोग करना चाहते हैं।Server.MapPath()

बात यह है कि .net पर्यावरण Server.MapPath को नहीं पहचानता है()।

Google ने मुझे बताया कि मुझे सिस्टम.Web, का उपयोग कर HttpContext.Current.Server का उपयोग करना है, लेकिन System.Web का उपयोग कर मेरे बावजूद HttpContext को पहचाना नहीं गया है। (और मैं देख लिया है - HttpContext System.Web के वर्गों में से एक है)

मदद?

+0

यह कौन सी भाषा होगी? – Esko

+0

'.NET पर्यावरण सर्वर .MapPath()' को पहचान नहीं करता है। क्या कोई त्रुटि है? – rahul

+1

क्या आपने प्रोजेक्ट के संदर्भ के रूप में System.Web शामिल किया है? – rslite

उत्तर

3

सुनिश्चित करें कि आप अपनी परियोजनाओं में System.Web को शामिल किया है संदर्भ (विजुअल स्टूडियो IDE में) इन करते हैं:

  1. सही परियोजना नोड (समाधान एक्सप्लोरर विंडो)
  2. पर क्लिक करें संदर्भ mennu पर , नेट टैब सूची आइटम के लिए जानकारी
  3. System.Web करें जोड़ें क्लिक करें।
  4. हिट ठीक बटन

Server.MapPath अब उपलब्ध होना चाहिए।

+0

यह समाधान मेरे लिए काम करता था क्योंकि मैं कक्षा पुस्तकालय में काम कर रहा था। –

3

यदि आपके पास कोई वेब एप्लिकेशन है, तो आपको स्वचालित रूप से System.Web.dll का संदर्भ होना चाहिए, और आपके पास System.Web.HttpContext कक्षा तक पहुंच होनी चाहिए। जांचें कि आपने गलती से संदर्भ को हटाया नहीं है। पूर्ण नामस्थान निर्दिष्ट किए बिना HttpContext कक्षा तक पहुंचने के लिए आपको using System.Web; कथन की आवश्यकता होगी।

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

+0

यह एक अलग असेंबली में एक विधि हो सकती है जिसका उपयोग वेब ऐप द्वारा किया जाता है, इसलिए संदर्भ सब के बाद हो सकता है। – rslite

+0

@rslite: हाँ, आप सही हैं। यह एक संभावित अनुनाद भी है कि संदर्भ क्यों गुम हो सकता है। – Guffa

1
एक ही समस्या यहाँ

। एक एएसपीनेट 4.0 वेब एप्लिकेशन में, एक .ashx हैंडलर में, शीर्ष पर using System.Web के साथ। मैं Server.MapPath() का उपयोग नहीं कर सका, जो कि मैंने उपयोग की है या System.Web.HttpServerUtility.MapPath() जो Google और MSDN चालू है, वह है। जैसा ऊपर बताया गया है, मैं HttpServerUtility.MapPath() का भी उपयोग नहीं कर सका।

हालांकि, अन्य उत्तरों में से एक ने मुझे context.Server.MapPath() को आजमाने के लिए प्रेरित किया जो मेरे ProcessRequest(HttpContext context) विधि में काम करता है।

+0

और भी सटीक होने के लिए: 'HttpContext.Current.Server.MapPath() ' – Nurp

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