2012-01-03 14 views
8

मैं फ़ाइल "MyFile.log" उपयोग नहीं कर सकते क्योंकि यह अन्य प्रक्रिया द्वारा किया जा रहा हैप्रक्रिया क्योंकि इसे किसी अन्य प्रक्रिया

प्रक्रिया हो रही है के द्वारा प्रयोग किया जा रहा है फ़ाइल "MyFile.log" उपयोग नहीं कर सकते।

, जबकि मैं इस

File.SetAttributes(filename,FileAttributes.Normal) 

using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)) 
{ 
    // Do stuff with log4net log 
} 

कर रहा हूँ मैं अन्य पदों पढ़ा है लेकिन वे सभी सुझाव है कि मैं पहले से ही क्या कर रहा हूँ

। कोई अन्य सुझाव?

धन्यवाद। एक न्यूनतम लॉक के साथ log4net कॉन्फ़िगर करने के लिए

+0

शायद विजुअल स्टूडियो फ़ाइल लॉक कर रहा है। इसे पुनरारंभ करने का प्रयास करें। –

उत्तर

33

प्रयास करें:

 using (var stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite)) 
    {... 
} 

या इस परियोजना की जांच: Tailf में

<appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    ... 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    ... 
</appender> 

have a look here for better explanation.

वैकल्पिक रूप से, के साथ लॉग फ़ाइल को खोलने का प्रयास किसी भी मामले में, SetAttributes() भाग को हटा दें जो काम नहीं कर सका। टेलिफ़ परियोजना विवरण टेलिफ यूनिक्स/लिनक्स सिस्टम पर उपलब्ध tail -f कमांड का सी # कार्यान्वयन है। अलग-अलग बंदरगाहों को अलग-अलग रूप से फ़ाइल को लॉक नहीं करता है, इसलिए यह फ़ाइल का नाम बदलने पर भी काम करता है: यह विशेष रूप से log4net रोलिंग फ़ाइल एपेंडर के साथ अच्छी तरह से काम करने के लिए डिज़ाइन किया गया है।

+0

कॉन्फ़िगरेशन को कॉन्फ़िगर/स्पर्श नहीं कर सकता है। कोई और विचार। अपने लिंक को पढ़ने के बारे में – user9969

+0

@ user231465 बेहतर उत्तर की जांच करें –

+0

अब काम पर डाउनलोड नहीं हो सकता है लेकिन क्या आप फ़ाइल को किसी भी तरह पढ़ सकते हैं? फ़ाइल की प्रतिलिपि बनाने में सोच रहा था। मुझे आश्चर्य है कि वाणिज्यिक लॉग रीडर लॉकिंग एमएमएम को कैसे संभालता है ...... – user9969

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