2015-01-31 5 views
5

मैं एक मशीन पर एक अजीब व्यवहार के नीचे पहुंचने की कोशिश कर रहा हूं। मेरे पास एक छोटा कंसोल एप्लिकेशन है जो अंतःक्रियात्मक रूप से चलाएगा, लेकिन जब मैं इसे डब्लूएमआई के माध्यम से आमंत्रित करता हूं, तो यह तुरंत शुरू हो जाएगा और बाहर निकल जाएगा।फ़्यूज़न लॉग असेंबली बाइंडर त्रुटि - बाध्य परिणाम: घंटा = 0x1। गलत फ़ंक्शन

मैंने फ़्यूज़न लॉग सक्षम किया, क्योंकि प्रोक्रोन अप्रत्याशित था। मुझे निम्न त्रुटि दिखाई देती है:

*** Assembly Binder Log Entry (31-01-2015 @ 19:22:51) *** 

The operation was successful. 
Bind result: hr = 0x1. Incorrect function. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\CMCBOOTSTRAP\Cmc.Installer.Agent.Console.exe 
--- A detailed error log follows. 

BEGIN : Native image bind. 
END : Incorrect function. (Exception from HRESULT: 0x00000001 (S_FALSE)) 

"गलत कार्य" का कारण क्या है? मैं यह निर्धारित करने के लिए और क्या देख सकता हूं कि डब्ल्यूएमआई के माध्यम से स्टार्टअप पर यह एप्लिकेशन प्रभावी ढंग से क्यों मर जाता है?

और मैं तुच्छ मतलब ...

class Program 
{ 
    static void Main(string[] args) 
    { 
     Thread.Sleep(30000); 
    } 
} 

पर्यावरण विंडोज सर्वर 2012 R2 और .NET 4.5 है।

+0

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

+0

मेरे पास टर्मिनल सर्वर गेटवे के माध्यम से केवल इस मशीन से कनेक्टिविटी है, और मशीन के पास इंटरनेट का उपयोग नहीं है, इसलिए डिबगर को दूरस्थ रूप से कनेक्ट करना असंभव है। मुझे यकीन नहीं है कि आप प्रोफाइलर के साथ क्या सुझाव दे रहे हैं। मैं क्या देख रहा हूं, एप्लिकेशन को कोड की एक पंक्ति दी गई है? ईटीडब्ल्यू क्या है? –

+0

जब आप ईटीडब्ल्यू के माध्यम से अपनी प्रक्रिया शुरू करते हैं तो आमतौर पर सत्र शून्य के तहत शुरू किया जाता है जहां एक डीबगर यूआई के पास डेस्कटॉप एक्सेस नहीं होता है और आप डीबगर का उपयोग नहीं कर सकते हैं। लेकिन आप विंडबग को डीबगिंग सर्वर प्रक्रियाओं के रूप में शुरू कर सकते हैं और आप स्थानीय रूप से टीसीपी या नामित पाइप के माध्यम से कनेक्ट कर सकते हैं ताकि आप देख सकें कि क्या हो रहा है। ईटीडब्ल्यू विंडोज के लिए इवेंट ट्रेसिंग है। आप उदाहरण का उपयोग कर सकते हैं PerfView। यदि प्रबंधित अपवाद होते हैं तो आप उन्हें प्रोफ़ाइल डेटा में देखेंगे। अपवाद पथ धीमे होते हैं जो आपको एक विचार दे सकता है कि क्या गलत हो रहा था। –

उत्तर

12

यह एक पूरी तरह से सामान्य दुर्घटना है, आप इसे लॉग श्रेणियों सेटिंग में "मूल छवियां" रेडियो बटन चुनकर Fuslogvw.exe से प्राप्त कर चुके हैं। अपनी मशीन पर आसानी से पुन: उत्पन्न करें, मैं उनमें से कई को देखता हूं।

वास्तविक त्रुटि कोड S_FALSE है, एक COM त्रुटि कोड जिसका अर्थ है "यह सफलतापूर्वक विफल हुआ"। यही कारण है कि यह The operation was successful कहता है। "फंक्शन विफल" के रूप में डायग्नोस्टिक संदेश के लिए गलत व्याख्या की गई, यह Windows त्रुटि 1 के लिए विवरण है और FormatMessage() winapi फ़ंक्शन द्वारा लौटाया गया है।

सफल विफलता पूरी तरह से अपेक्षित है, आपने अपने कंसोल मोड ऐप पर Ngen.exe नहीं चलाया है, इसलिए इसके लिए मूल छवि उपलब्ध नहीं है। देखो, यह नहीं है। लॉग श्रेणी को वापस "डिफ़ॉल्ट" में बदलें, मूल छवियां आपकी समस्या नहीं हैं।

+0

धन्यवाद, वर्ग एक पर वापस। कोई एहसास नहीं है कि यह ऐप क्यों शुरू होता है और फिर तुरंत मर जाता है। मैं शुरुआत में इसे डीबगर संलग्न करने के लिए GFlags भी नहीं प्राप्त कर सकता। –

+6

मेरे पास बिल्कुल उचित अनुमान नहीं है। मशीन को चौथी कहानी मंजिल पर खींचें और इसे खिड़की से बाहर निकलने दें। खिड़की खोलना पहले वैकल्पिक है। –

+0

और निश्चित रूप से यह केवल एक मशीन पर होता है। –

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