Ho scritto un'applicazione C# piuttosto complessa che accede a un database Oracle tramite ODP.Net. Ho sviluppato l'applicazione su una macchina Windows XP (32 bit) dove ho installato ODAC (32-bit). L'applicazione viene eseguita senza problemi sul mio PC di sviluppo ma genera un'eccezione sul server (Windows Server 2003 x64 service pack 2).Errore System.Reflection.RuntimeModule.GetTypes() con ODP.Net e C#
Ho installato il runtime per .Net framework 4.0 (dotNetFx40_Full_x86_x64.exe) sul server, così come ODAC - Ho provato per la prima volta con Release 4 (11.2.0.3.0) per Windows x64 e poi con ODAC 11.2 Release 4 (11.2.0.3.0) con Oracle Developer Tools per Visual Studio.
Nessuno dei lavori. La versione a 32 bit ha ottenuto un po 'di più. La prima volta che richiamo un'istruzione LINQ sul database ottengo il seguente messaggio.
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()
La versione a 64 bit mi dice che ho alcun sostegno Oracle.Access, che è lo stesso del messaggio di errore originale ho avuto quando ho provato prima di eseguire l'applicazione withouth ODAC sul server.
Qualcuno di voi può aiutarmi? Ho visto alcune voci che discutono di problemi simili e l'unica risposta convincente che ho visto è stata la creazione dell'eseguibile con Copia locale impostato su TRUE per tutti i riferimenti e, anche se ciò non è riuscito. Ho ancora lo stesso messaggio di errore.