मैं माइक्रोसॉफ्ट एंटरप्राइज लाइब्रेरी 6.0.1304 के साथ मैक (मोनो 6.0.0.296) के लिए नए विजुअलस्टूडियो की कोशिश कर रहा हूं। दुर्भाग्य से मैं इसका उपयोग करने में सक्षम नहीं हूं क्योंकि "NotImplementedException" उठाया गया है।

मैं कई वर्षों से एंटरप्राइज़ लाइब्रेरी का उपयोग कर रहा हूं लेकिन विजुअल स्टूडियो (विंडोज एनवी) में और यह बहुत अच्छा है लेकिन जब मैंने मोनो के तहत इसका उपयोग करने की कोशिश की तो सब कुछ काम नहीं कर रहा है।

कुछ खोज के बाद मैं देख सकता हूं कि मोनो डॉव के लिए mscorlib.dll WindowsIdentity "उपयोगकर्ता" संपत्ति का समर्थन नहीं करता है।

Mscorlib.dll (4.0.0.0 - मोनो)

using System.Runtime.InteropServices;

[MonoTODO ("not implemented")]
[ComVisible (false)]
public SecurityIdentifier User {
    get {
        throw new NotImplementedException ();
    }
}

आवेदन:

public static void Main (string [] args) 
{
    LogWriter logWriter = new LogWriterFactory ().Create ();
    Logger.SetLogWriter (logWriter, false);         
    logWriter.Write ("Application is working", "General", 5, 2000, TraceEventType.Information);         
}

ऐप.कॉन्फ़िगरेशन:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />  
  </configSections>
  <loggingConfiguration name="" 
                        tracingEnabled="false" 
                        defaultCategory="General"  
                        logWarningsWhenNoCategoriesMatch="false">    
    <listeners>  
        <add name="Rolling Flat File Trace Listener" 
             type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"        
             listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  
             fileName="RollingFlatFile.log"  
             footer="----------------------------------" 
             formatter="Text Formatter"  
             header="" rollInterval="Day"  
             traceOutputOptions="DateTime, Timestamp" 
             filter="All" />          
    </listeners>  
    <formatters>  
        <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  
             template="Timestamp: {timestamp(local)}{newline}  
                       Message: {message}{newline}  
                       Category: {category}{newline}  
                       Priority: {priority}{newline}  
                       Severity: {severity}"  
             name="Text Formatter" />  
    </formatters>  
    <categorySources>  
        <add switchValue="All" autoFlush="true" name="General">  
            <listeners>  
                <add name="Rolling Flat File Trace Listener" />    
            </listeners>  
        </add>  
    </categorySources>  
    <specialSources>  
        <allEvents switchValue="All" name="All Events">  
            <listeners>  
                <add name="Rolling Flat File Trace Listener" />  
            </listeners>  
        </allEvents>  
        <notProcessed switchValue="All" name="Unprocessed Category">  
            <listeners>  
                <add name="Rolling Flat File Trace Listener" />  
            </listeners>  
        </notProcessed>  
        <errors switchValue="All" name="Logging Errors &amp; Warnings">  
            <listeners>  
                <add name="Rolling Flat File Trace Listener" />  
            </listeners>  
        </errors>  
    </specialSources>  
  </loggingConfiguration>  
</configuration>

फ़ाइल में ट्रैक की गई त्रुटि:

टाइमस्टैम्प: 12/07/2019 16:36:11

संदेश: संदेश का संसाधन विफल रहा। अधिक जानकारी के लिए नीचे सारांश जानकारी देखें। यदि यह समस्या बनी रहती है, तो सेवा बंद कर दें और श्रेणियों और सिंक के कॉन्फ़िगरेशन में संभावित त्रुटि (त्रुटियों) के लिए कॉन्फ़िगरेशन फ़ाइल (फ़ाइलों) की जाँच करें।

एंटरप्राइज़ लाइब्रेरी वितरक सेवा के लिए सारांश:

--> संदेश: टाइमस्टैम्प: 12/07/2019 14:36:11 संदेश: आवेदन काम कर रहा है श्रेणी: सामान्य प्राथमिकता: 5 EventId: 2000 गंभीरता: सूचना शीर्षक: मशीन: MacBook-Pro-di-जॉन ऐप डोमेन: FLibrary .exe प्रक्रिया आईडी: आंतरिक संपत्ति को पढ़ने में असमर्थ। त्रुटि संदेश: GetCurrentProcessId प्रक्रिया का नाम: आंतरिक गुण पढ़ने में असमर्थ। त्रुटि संदेश: GetModuleHandle थ्रेड नाम: Win32 ThreadId: आंतरिक गुण पढ़ने में असमर्थ। त्रुटि संदेश: GetCurrentThreadId विस्तारित गुण: -> मशीननाम: मैकबुक-प्रो-डी-जॉन -> टाइमस्टैम्प: 12/07/2019 14:36:11 -> पूरा नाम: Microsoft.Pracces.EnterpriseLibrary.Logging, संस्करण = 6.0 .0.0, कल्चर = न्यूट्रल, पब्लिककीटोकन = 31bf3856ad364e35 -> ऐपडोमेननाम: FLibrary.exe -> विंडोजआइडेंटिटी: jfk

अपवाद सूचना विवरण:

अपवाद प्रकार: System.NotImplementedException संदेश: विधि या संचालन लागू नहीं किया गया है। डेटा: System.Collections.ListDictionaryInternal TargetSite: System.Security.Principal.WindowsIdentity GetCurrent(Boolean) HelpLink: NULL Source: mscorlib HRresult: -2147467263

स्टैकट्रेस सूचना विवरण:

System.Security.Principal.WindowsIdentity.GetCurrent (System.Boolean ifImpersonating) [0x00000] में /Users/builder/jenkins/workspace/build-package-osx-mono/2019-02/external/bockbuild/builds/mono-x64 पर /mcs/class/corlib/System.Security.Principal/WindowsIdentity.cs:165 Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter.RevertExistingImpersonation () [0x0000f] में :0 में Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter.Processes.EnterpriseLibrary.Logging.LogWriter पर (Microsoft.Practices.EnterpriseLibrary.Logging.LogEntry लॉग, System.Diagnostics.TraceEventCache traceEventCache) [0x00000] में :0

Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter+<>c__DisplayClass13.b__12 () [0x0007f] में :0 पर

लॉग से, आप स्पष्ट रूप से देख सकते हैं कि System.Security.Principal.WindowsIdentity.GetCurrent नियम तोड़ता है...

क्या आप कृपया इस पर मेरी मदद कर सकते हैं? क्या किसी ने मैकोज़ पर मोनो के साथ एंटरप्राइज़ लाइब्रेरी का उपयोग करने का प्रयास किया? क्या कहीं कोई समाधान मौजूद है?

आपकी मदद और समय के लिए बहुत-बहुत धन्यवाद। सादर,

0
Florin Berardi 12 जुलाई 2019, 17:59

1 उत्तर

सबसे बढ़िया उत्तर

अंत में मैंने ऐसी स्थिति का प्रबंधन किया है। सबसे पहले, सभी टिप्पणियों के लिए धन्यवाद, जिन्होंने मुझे संकल्प के साथ बहुत मदद की। असल में, मुझे एमईएल 6 कोड का एक हिस्सा बदलना पड़ा और फिर मैं इसे बिना किसी समस्या के इस्तेमाल कर सकता था।

जैसा कि पहले @SushiHangover द्वारा सुझाया गया था, मैंने एमईएल 6 स्रोत कोड लिया और मैंने विश्लेषण करना शुरू कर दिया ... मैंने कोड के एक हिस्से को mscorlib.dll के अंदर SecurityIdentifier User कॉल कर दिया है

मैंने जो किया वह है: - एमईएल 6 स्रोत कोड डाउनलोड करें - इसे मैक के लिए विजुअल स्टूडियो के साथ खोलें - सभी टेस्ट प्रोजेक्ट्स और फाइलों को इंजन द्वारा समर्थित नहीं हटाएं - सब कुछ ठीक होने तक संकलित करें

एक बार जब आप अपना पीआरजे संकलित कर लें, तो नीचे दिए गए अनुभाग के "प्रतिरूपण" अनुभाग को ढूंढें और टिप्पणी करें:

private void ProcessLog(LogEntry log, TraceEventCache traceEventCache)
    {
        // revert any outstanding impersonation
        //using (RevertExistingImpersonation())
        //{
            var items = new ContextItems();
            items.ProcessContextItems(log);

            var matchingTraceSources = GetMatchingTraceSources(log);
            var traceListenerFilter = new TraceListenerFilter();

            foreach (LogSource traceSource in matchingTraceSources)
            {
                traceSource.TraceData(log.Severity, log.EventId, log, traceListenerFilter, traceEventCache, ReportExceptionDuringTracing);
            }
        //}
    }

कोड नमूना छवि लिंक

उसके बाद, पुन: संकलित करें, संकलित डीएलएल को अपनी परियोजना में उपयोग करें और यह अंततः काम करेगा।

यदि आपके पास कोई और प्रश्न या संदेह है, तो कृपया मुझे बताएं और मुझे उत्तर देने में खुशी होगी।

आपका दिन शुभ हो, सादर,

फ्लोरिन

0
Florin Berardi 15 जुलाई 2019, 10:33