2009-06-20 10 views
7

में होस्ट की गई डब्ल्यूसीएफ सेवा में सापेक्ष पथ मैं सार्वजनिक सिल्वरलाइट 2.0 एप्लिकेशन द्वारा डब्ल्यूसीएफ में एक त्वरित डेटा सेवा को फेंक रहा हूं। चूंकि मेरा डेटा बहुत स्थिर और अपेक्षाकृत सरल है, मैं इसे स्थानीय एक्सएमएल फाइलों में संग्रहीत करना चाहता हूं (जो कि बहुत आसान है क्योंकि वहां बहुत सीमित संख्या में लोग इसे संपादित करेंगे)।आईआईएस

मुझे आश्चर्य है कि मेरी सेवा के भीतर से एक सापेक्ष पथ खोजने का सबसे अच्छा तरीका क्या होगा। पारंपरिक एएसपी.नेट में मैं सर्वर.मैपपाथ का उपयोग कर सकता हूं .... इस डब्ल्यूसीएफ सेवा के भीतर कुछ भी उपलब्ध नहीं है। अंततः यह समाधान एक होस्टिंग प्रदाता पर होस्ट किया जाएगा जिसका मेरा कोई नियंत्रण नहीं है इसलिए मैं किसी निश्चित स्थान को हार्डकोड नहीं कर सकता। मैं अपने ऐपडाटा फ़ोल्डर में कुछ एक्सएमएल फाइलों के लिए सिर्फ एक सापेक्ष पथ प्राप्त करूंगा।

कोई सुझाव?

उत्तर

11

आप Environment.CurrentDirectory या AppDomain.CurrentDomain.BaseDirectory

+4

AppDomain.CurrentDomain.BaseDirectory सही पथ देता है। लेकिन पर्यावरण। CurrentDirectory {प्रोग्राम फाइल} फ़ोल्डर के अंदर कुछ पथ वापस करने लगता है। आपकी सहायता के लिए धन्यवाद. –

2

WCF सेवाओं का उपयोग कर की कोशिश कर सकते के बाद से, अंत में वहाँ अभी भी एक है अभी भी अपने ASP.NET पृष्ठों के रूप में ही बातें (का एक बहुत की पहुंच है HTTP अनुरोध और प्रतिक्रिया)। तुम अब भी इसलिए की तरह Server.MapPath का उपयोग कर सकते हैं:

HttpContext.Current.Server.MapPath(...) 
+1

यह केवल तभी काम करेगा यदि आप एएसपी.NET संगतता मोड सक्षम करते हैं, और जब तक आप डब्ल्यूसीएफ को मौजूदा एएसएमएक्स वेब सेवा पोर्ट नहीं करना चाहते हैं, तो ऐसा करने के लिए शायद ही कोई कारण है। –

0

पहले, वर्तमान निर्देशिका वापस जाने के लिए सेवा के लिए एक ऑपरेशन जोड़ें। नया ऑपरेशन सिर्फ पर्यावरण लौटाएं। वर्तमान डायरेक्टरी। क्लाइंट में, यह देखने के लिए जांचें कि क्या आप वर्तमान निर्देशिका के बारे में हैरान हैं या नहीं। आवश्यकतानुसार समायोजित करें।

1

आप फ़ाइलों के लिए अपने फ़ोल्डर में बजाय IsolatedStorage में फ़ाइलों को स्टोर कर सकते हैं। यह कैसे काम करता है यह देखने के लिए लिंक किए गए पृष्ठ पर उदाहरण देखें।