2012-05-24 13 views
5

के साथ त्रुटि मैंने एक जटिल जटिल सी # एप्लिकेशन लिखा जो ODP.Net के माध्यम से एक ऑरैकल डेटाबेस तक पहुंचता है। मैंने विंडोज एक्सपी मशीन (32-बिट) पर एप्लिकेशन विकसित किया जहां मैंने ओडीएसी (32-बिट) स्थापित किया। एप्लिकेशन मेरे विकास पीसी पर एक गड़बड़ के बिना चलता है लेकिन सर्वर पर एक अपवाद फेंकता है (विंडोज सर्वर 2003 x64 सर्विस पैक 2)।System.Reflection.RuntimeModule.GetTypes() ODP.Net और C#

मैंने सर्वर पर .NET Framework 4.0 (dotNetFx40_Full_x86_x64.exe) के लिए रनटाइम स्थापित किया है, साथ ही ओडीएसी - मैंने पहली बार विंडोज x64 के लिए रिलीज 4 (11.2.0.3.0) के साथ प्रयास किया और फिर ओडीएसी 11.2 रिलीज के साथ विजुअल स्टूडियो के लिए ओरेकल डेवलपर टूल्स के साथ 4 (11.2.0.3.0)।

कोई भी काम नहीं किया। 32-बिट संस्करण थोड़ा और आगे हो गया। पहली बार जब मैं डेटाबेस पर LINQ कथन कॉल करता हूं तो मुझे निम्न संदेश मिलता है।

at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) 
    at System.Reflection.RuntimeModule.GetTypes() 
    at System.Reflection.Assembly.GetTypes() 
    at System.Data.Metadata.Edm.ObjectItemAttributeAssemblyLoader.LoadTypesFromAssembly() 
    at System.Data.Metadata.Edm.ObjectItemAssemblyLoader.Load() 
    at System.Data.Metadata.Edm.ObjectItemAttributeAssemblyLoader.Load() 
    at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, ObjectItemLoadingSessionData loadingData) 
    at System.Data.Metadata.Edm.AssemblyCache.LoadAssembly(Assembly assembly, Boolean loadReferencedAssemblies, KnownAssembliesSet knownAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage, Object& loaderCookie, Dictionary`2& typesInLoading, List`1& errors) 
    at System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection, Assembly assembly, Boolean loadReferencedAssemblies, EdmItemCollection edmItemCollection, Action`1 logLoadMessage) 
    at System.Data.Metadata.Edm.ObjectItemCollection.ImplicitLoadAssemblyForType(Type type, EdmItemCollection edmItemCollection) 
    at System.Data.Metadata.Edm.MetadataWorkspace.ImplicitLoadAssemblyForType(Type type, Assembly callingAssembly) 
    at System.Data.Objects.ObjectContext.GetTypeUsage(Type entityCLRType) 
    at System.Data.Objects.ObjectContext.GetEntitySetForNameAndType(String entitySetName, Type entityCLRType, String exceptionParameterName) 
    at System.Data.Objects.ObjectContext.CreateObjectSet[TEntity](String entitySetName) 
    at MyProgram.Data.DT.DTContext3.get_MYTABLE() 

64-बिट संस्करण मुझसे कहता है मेरे पास कोई Oracle.Access समर्थन है, जो मूल त्रुटि संदेश मुझे मिल गया जब मैं पहली बार सर्वर पर ODAC withouth एप्लिकेशन को चलाने की कोशिश की के रूप में ही है।

क्या आप में से कोई भी मेरी मदद कर सकता है? मैंने इसी तरह की समस्याओं पर चर्चा करने वाली कुछ प्रविष्टियों को देखा है और केवल एक ही ठोस जवाब मैंने देखा है कि सभी स्थानीय संदर्भों के लिए कॉपी स्थानीय सेट के साथ निष्पादन योग्य बनाया गया था, लेकिन यह भी असफल रहा। मुझे अभी भी एक ही त्रुटि संदेश मिलता है।

उत्तर

2

मुझे अभी जवाब मिला है। कोड का यह टुकड़ा, bgripka द्वारा एक प्रविष्टि जिसे मैंने इस मुद्दे के बारे में चर्चा में पाया, मुझे जवाब दिया। एक लापता पुस्तकालय का संदर्भ था (जिसकी बिल्कुल आवश्यकता नहीं थी)।

catch (ReflectionTypeLoadException ex) 
    { 
     StringBuilder sb = new StringBuilder(); 
     foreach (Exception exSub in ex.LoaderExceptions) 
     { 
      sb.AppendLine(exSub.Message); 
      if (exSub is FileNotFoundException) 
      { 
       FileNotFoundException exFileNotFound = exSub as FileNotFoundException; 
       if (!string.IsNullOrEmpty(exFileNotFound.FusionLog)) 
       { 
        sb.AppendLine("Fusion Log:"); 
        sb.AppendLine(exFileNotFound.FusionLog); 
       } 
      } 
      sb.AppendLine(); 
     } 
     string errorMessage = sb.ToString(); 
     log.Fatal(errorMessage); 
    }