2012-02-09 10 views
13

मैं "प्रदाता 'को सुलझाने में मदद के संसाधनों नहीं सुलभ जब एक खिड़कियों घटना प्रदाता। मैं Mangen उपयोगिता के साथ मेरी प्रकट फ़ाइल बनाने बनाने का प्रयास करते हैं, और मेरे नाम' .exe 'फ़ाइल की आवश्यकता मेरा संदेश और संसाधन फ़ाइल के रूप में। मैं अपने exe फ़ाइल और expected'.res के साथ 'आर सी' फ़ाइल संकलन 'फ़ाइल उत्पन्न कर रहे हैं। हालांकि, जब मैं wevtutil चलाने मैं हो रही रखने के संसाधनों नहीं सुलभ' चेतावनी।चेतावनी -Provider संसाधन नहीं सुलभ चल wevtutil

उत्तर

14

आप अपने प्रकट (जैसे wevtutil im manifest.man) इंस्टॉल करते हैं, तो आपको एक चेतावनी के कुछ प्रकार देखना चाहिए अगर संसाधन उपलब्ध नहीं हैं:

**** Warning: Publisher EventsProvider resources are not accessible. 

कुछ अतिरिक्त जानकारी प्राप्त करने के लिए, प्रकाशकों में से किसी एक पर जानकारी पुनर्प्राप्त करने का प्रयास करें। उदाहरण के लिए: ऐसा लगता है कि संसाधन की तरह नहीं मिला इसके बाद के संस्करण के लिए

c:\...> wevtutil gp <EventProviderName> 
Failed to open metadata for publisher <EventProviderName>. The specified resource 
type cannot be found in the image file. 

,:

c:\...> wevtutil gp <EventProviderName> 
Failed to open metadata for publisher <EventProviderName>. Access denied. 

ठीक है, ऊपर अनुमतियों की समस्या पता चलता है, तो मेरे पथ सुलभ बनाने और फिर से कोशिश करते हैं सही ढंग से संकलित।

यदि आप वीएस के साथ File->Open पर जाते हैं और संसाधन दर्शक में अपना एक्सई खोलते हैं तो आपको संकलित संसाधनों को देखने में सक्षम होना चाहिए। आपको कम से कम "WEVT_TEMPLATE" प्रविष्टि होनी चाहिए।

संसाधन के लिए सही ढंग से संकलित की, csc इस प्रकार संसाधन पारित कर दिया जाना चाहिए:

csc /win32res:<Resource.res> 
+0

बहुत उपयोगी अंतर्निहित त्रुटि निदान करने के लिए। –

12

dll आप जरूरतों दर्ज कर रहे हैं फाइल अनुमति के एक विशेष सेट है। मुझे संदेह है कि इवेंट लॉगिंग सेवा "स्थानीय सेवा" खाते के अंतर्गत चलती है। तो बस सिस्टम पहुंच अधिकार देना पर्याप्त नहीं है। मैंने अपने पीसी पर "यूएसर्स" समूह देकर समस्या से हल किया "पढ़ें & निष्पादित" निजीकृत।

मैं एक ग़लत समस्या में भाग गया जिसने ट्रैक करने के लिए एक दिन लिया। मैंने अपना प्रोजेक्ट वर्किंग फोल्डर साझा किया और फिर इसे साझा नहीं किया। किसी कारण से इसने "USERS" पहुंच को निजीकृत कर दिया। मुझे लगता है कि विंडोज़ एसडीके में ईवेंट ट्रेसिंग नमूने की तुलना में यह कारण है कि सभी डीएलएस को सी ड्राइव के तहत एक विशेष फ़ोल्डर में कॉपी करें और वहां से प्रदाता इंस्टॉल करें। जब आप सी ड्राइव के तहत फ़ोल्डर्स बनाते हैं तो यूएसईआर समूह को स्वचालित रूप से एक्सेस दिया जाता है।

+0

इससे मदद मिली! सुरक्षा सेटिंग्स को पूरी तरह से अनदेखा कर दिया! :) –

7

मैं ठीक उसी त्रुटि थी लेकिन समाधान अन्य उत्तर है कि पहले से ही पोस्ट की है, थोड़ा अलग था। मैं मैनिफ़ेस्ट फ़ाइल खोलने के लिए और resourceFileName और messageFileName विशेषताएं परिवर्तित आवेदन निष्पादन को निरपेक्ष पथ उपयोग करने के लिए किया था।

+0

यह समाधान अनुप्रयोग है यदि 'wevtutil gp ' आउटपुट चला रहा है * प्रकाशक के लिए मेटाडेटा खोलने में विफल। ** सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता है। *** –

+2

यदि मैनिफेस्ट फ़ाइल में पथ नाम मेल नहीं खाते हैं, तो आप वास्तविक स्थान पर पूर्ण पथ के साथ/mf और/rf विकल्पों का उपयोग कर सकते हैं। आपको यह सुनिश्चित करने की भी आवश्यकता है कि स्थान ने MACHINE_NAME \ उपयोगकर्ता सुरक्षा समूह को भी विशेषाधिकार दिया है। –

+0

क्रोम के लिए इस पर काम करते समय मुझे यह त्रुटि मिल रही थी और एकमात्र अच्छा समाधान/एमएफ और/आरएफ का उपयोग कर रहा था। मुझे समझ में नहीं आता कि मैंने विफलता क्यों मारा (यह मेरे लिए पहले काम करता है) लेकिन अब यह काम कर रहा है। यह अजीब बात है कि wevtutil.exe procmon के साथ ट्रेस करते समय डीएलएल से कभी भी पढ़ने का कोई संकेत नहीं दिखाता है। यह इस चेतावनी को बहुत मुश्किल से खोजता है। –

5

मुझे इसी तरह की समस्या का सामना करना पड़ा।समाधान के लिए, अपने प्रकट फ़ाइलों manifest.man और manifest.dll को बुलाया जाता हैं

  • उपयोग पूर्ण पथ जहां भी संभव हो और संबंधित पथ से दूर रहने
  • यकीन है कि हर किसी के फ़ाइलों

प्रकट करने के लिए पढ़ने के लिए पहुँच गया है बनाना है तो

  • अनुदान हर किसी को पढ़ने

    012 (यदि आप एक बैच फ़ाइल का उपयोग कर रहे %~dp0 चर इस्तेमाल किया जा सकता)

    icacls %~dp0\manifest.* /t /grant Everyone:R

  • उपयोग पूर्ण पथ स्थापित करने के लिए

    wevtutil im %~dp0\manifest.man /rf:"%~dp0\manifest.dll" /mf:"%~dp0\manifest.dll"

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