Question

J'ai une application Forms Web ASP.NET que je suis construction et l'exploitation contre .NET 4.0 sur une machine locale Win7. (Tout est OK sur la boîte locale.) Mon application est en cours d'exécution EF4.1 contre un Oracle DB, donc je suis en utilisant le fournisseur de données Oracle EF, qui est encore en version bêta.

En ce moment, je peux déployer l'application sur ma machine cible Win2008 Server à l'aide de déploiement Web de mon VS2010 local, mais quand je lance l'application sur la cible, je reçois l'erreur Unable to find the requested .Net Framework Data Provider classique.

Voici mon (sans succès) configuration, à partir de maintenant:

  • applications 32 bits sont activé dans la piscine de l'application (.NET 4.0) sur la cible Win2008 Server.

  • Copier local est réglé sur true pour la DLL Oracle.DataAccess dans ma solution VS2010 locale.

  • Les deux de la Plateforme et cible plate-forme paramètres sont réglés sur Any CPU dans ma configuration de construction locale. (J'ai essayé différents paramètres ici sans succès.)

  • La cible Win2008 Server ne pas ont une DLL dans Oracle.DataAccess le GAC. (Je pensais que la mise en copie locale sur la DLL Oracle serait dire que je ne l'ai pas besoin du GAC.)

EDIT : J'ai essayé de GAC la DLL Oracle.DataAccess, mais je reçois la même erreur qui est discuté

Était-ce utile?

La solution 2

La solution de GTG fournit au moins une partie de la réponse à ma question 1, donc je suis upvoting sa solution. Pour toute personne intéressée d'autre dans ma question 2 (comment effectuer une installation discrète ODAC), une réponse peut être trouvée ici . (Regardez la réponse de AnthonyVO, car il résume toutes les informations nécessaires.)

Je dois mentionner que je ne l'ai pas encore été en mesure d'obtenir la solution discrète au travail pour moi, mais beaucoup ont, et il est la solution que je dois mettre en œuvre.

Mise à jour: L'affaire est close. Je manque une DLL Oracle. Ma configuration complète est affichée .

Autres conseils

Étant donné que votre serveur ne dispose pas Oracle.DataAccess dans le GAC, qui indique que vous n'avez pas installé le client Oracle sur cette machine et essayez de le faire fonctionner en déployant Oracle.DataAccess.dll dans le cadre de votre application .

Je ne suis pas tout à fait sûr exactement ce qui doit être installé sur le serveur. D'habitude, je viens de lancer le programme d'installation Oracle sur le serveur pour vous assurer que tous les fichiers et les paramètres nécessaires Oracle sont installées. Si vous faites cela, vous n'avez pas besoin de déployer Oracle.DataAccess.dll avec votre application, il sera déjà dans GAC du serveur.

Une chose que je ne sais qui est nécessaire est un paramètre de configuration qui indique au système comment créer une nouvelle instance du fournisseur. Vous pouvez essayer d'ajouter ce paramètre à votre web.config et essayer si cela est suffisant, mais encore une fois, il peut y avoir beaucoup de DLL et les paramètres dépendants dont vous avez besoin pour le fournisseur Oracle au travail.

Le réglage est (ce qui est une autre version de ODP.Net, vous trouverez les bons paramètres dans machine.config sur votre propre machine):

<system.data>
  <DbProviderFactories>
     <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client"
          description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top