मैंने एक विंडोज सेवा बनाई है जो c:\Program Files\My Service
निर्देशिका में स्थापित हो जाती है। निष्पादन योग्य के साथ, मेरे पास एक एक्सएमएल फ़ाइल है जो एक ही निर्देशिका में स्थापित हो जाती है। उपयोगकर्ता द्वारा परिभाषित जानकारी प्राप्त करने के लिए यह XML फ़ाइल सेवा द्वारा उपयोग की जाती है।विंडोज सेवा से टेक्स्ट फ़ाइल कैसे पढ़ा जाए?
सेवा मैं फ़ाइल को पढ़ने के रूप में अगर यह निष्पादन योग्य .. उदाहरण के लिए स्थानीय थे की कोड में:
:DataSet ds = new DataSet();
ds.ReadXml("Foo.xml");
हालांकि, जब मैं सेवा चलाने के लिए, सेवा एक अपवाद कह फेंकता
नहीं मिल सका फ़ाइल 'C: \ Windows \ System32 \ Foo.xml'
c:\Program Files\My Service
में निष्पादन योग्य जीवन के बाद से मैं Windows सेर की उम्मीद c:\Program Files\My Service\Foo.xml
में XML फ़ाइल को देखने के लिए। जाहिर है, यह मामला नहीं है।
मैं उसी स्थान पर Foo.xml फ़ाइल के लिए (अपेक्षाकृत) सेवा को मजबूर कैसे कर सकता हूं जहां सेवा निष्पादन योग्य रहता है?
System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Foo.xml");
के संभावित डुप्लिकेट करना है [मैं कैसे सी # का उपयोग कर एक Windows सेवा की निर्देशिका स्थापित मिल रहा है,?] (Http://stackoverflow.com/questions/491735/how-do-i-find-the-install-directory-of-a-windows-service-using-c) –
बस एक विचार, आपको * कॉन्फ़िगर करने योग्य एप्लिकेशन सेटिंग्स को स्टोर नहीं करना चाहिए प्रोग्राम पथ निर्देशिका को इस पथ को संशोधित करने के लिए एक्सेस के रूप में विशेषाधिकार की आवश्यकता होती है। इसके बजाय 'एप्लिकेशनडेटा'/'लोकल ऐप्लिकेशनडेटा 'का उपयोग करने पर विचार करें। –
@QuintinRobinson - अनुस्मारक के लिए धन्यवाद! +1 – Jed