ODP.NET Géré - Impossible de trouver le demande .Net Framework Fournisseur De Données
À l'aide de Visual Studio 2013, j'ai ajouté la dernière version de ODP.NET parvenu à un projet à l'aide de Nuget:
Install-Package odp.net.managed
http://www.nuget.org/packages/odp.net.managed/121.1.2
Maintenant, quand j'essaye d'exécuter le code suivant:
Database db = DatabaseFactory.CreateDatabase();
Il jette l'exception suivante:
An exception of type 'System.ArgumentException' occurred
in System.Data.dll but was not handled in user code
Additional information: Unable to find the requested .Net
Framework Data Provider. It may not be installed.
Après la lecture des autres utilisateurs du à des problèmes similaires, j'ai ajouté la gestion de pilote de la section de C:\Windows\Microsoft.Net\Framework64\v4.0.30319\Config\machine.config:
<system.data>
<DbProviderFactories><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
Mais qui n'a aucune incidence sur.
J'ai la chaîne de connexion spécifié comme tel dans mon web.config, mais je ne suis pas sûr si c'est le même en regardant la chaîne de connexion format tel qu'il est en panne avant que j'ouvre la connexion:
<connectionStrings>
<add name="OneCDPBuild"
providerName="Oracle.ManagedDataAccess.Client"
connectionString="Data Source=database;user id=IDhere;pwd=passwordhere;" />
</connectionStrings>
J'ai ajouté ce qui suit à mon web config:
<system.data>
<DbProviderFactories>
<remove invariant="Oracle.ManagedDataAccess.Client" />
<add name="ODP.NET, Managed Driver"
invariant="Oracle.ManagedDataAccess.Client"
description="Oracle Data Provider for .NET, Managed Driver"
type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
OriginalL'auteur TimeBomb006 | 2014-08-19
Vous devez vous connecter pour publier un commentaire.
Je voudrais commencer par faire un test direct et en évitant les méthodes de fabrique:
Toutes les questions ici seront liées à la Oracle.ManagedDataAccess.dll manquant dans le répertoire bin, ou des problèmes de connectivité causée par la chaîne de connexion (en supposant que vous pouvez déjà vous connecter à l'instance oracle par d'autres moyens).
Comme pour l'usine, on dirait que vous êtes à l'aide de certains de la date d'entreprise le code de bibliothèque. Dans les versions ultérieures du cadre, je crois que vous utilisez:
Je pense que si vous prenez une étape à la fois, vous obtiendrez un meilleur retour d'informations.
OriginalL'auteur b_levitt
J'ai été faire cette erreur lors du déploiement d'une ASP.NET MVC 5 application à l'aide de EntityFramework 5 à notre serveur 64 bits sur lequel la version 64 bits de l'ODAC client composants ont été installés.
J'ai suivi b_levitt de conseiller et a confirmé que la connexion peut être ouvert manuellement, sans l'aide d'usines, de sorte que les ODAC a été installé et fonctionne, mais l'usine méthodes ont été incapables de localiser les assemblées.
Après tirant sur mes cheveux pour un montant non divulgué de temps, j'ai compris que le problème était avec la machine.fichier de configuration pour la version 32 bits de l' .NET framework. Il n'inclut pas les entrées pour l'oracle fournisseurs, alors j'ai ajouté manuellement les entrées suivantes dans ce fichier:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
Sous
assurez-vous que vous avez les deux suivants de la section entrées:
Vous pouvez obtenir le exacte des entrées de votre machine.fichier de configuration en vertu de la framework64 dossier.
Prochain, sous
assurez-vous que vous avez deux noms d'usine:
Après l'ajout de ces entrées, tout était de travailler pour moi.
La machine.config tient paramètres globaux, ne sachant pas ce que les clients vont être ciblage (géré vs non géré), vous pouvez faciliter l'usage des deux.
OriginalL'auteur Yves Rochon
J'ai résolu le mien modification de la Pool d'Applications IIS de configuration pour
Activer l'Application 32 bits
àFALSE
.Je commençais à l'exception
Failed to find or load the registered .Net Framework Data Provider
parce que l'ODAC que j'ai installé pour64-bit
, et mon application de la piscine a été prise de l'exécution de l'application à32-bit
.OriginalL'auteur Mariano Desanze