OracleException (0x80004005) lors de la connexion à la firebase database Oracle

J’ai développé un simple site Web C #, .net 4.0 que j’aimerais déployer sur un serveur de test IIS. J’utilise l’assembly Oracle.DataAccess pour me connecter à une firebase database Oracle, et j’ai ajouté cette DLL (et de nombreuses autres DLL associées, juste pour faire bonne mesure et dans une tentative de tentative d’essayer de résoudre ce problème) , dans le dossier bin de mon site. cela fonctionne bien sur ma machine de développement (évidemment, a bien fonctionné avant de copier toutes ces DLL), mais pas sur mon serveur de test. Sur le serveur de test, je reçois l’exception suivante:

[OracleException (0x80004005)] Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, Ssortingng procedure, Boolean bCheck) +1468 Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, Object src) +24 Oracle.DataAccess.Client.OracleConnection.Open() +4391 MappingQueries.connect() +173 scripts_list_mappings.Page_Load(Object sender, EventArgs e) +17 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +91 System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207 

Pas de message d’erreur, pas de détails. Existe-t-il un moyen d’obtenir plus d’informations ou pourrait-il y avoir une solution à ce problème? Je suis un peu mal à l’aise ici, donc toute information utile serait grandement appréciée.

La solution (en quelque sorte)

D’accord, j’ai corrigé cela d’une manière détournée et j’aimerais laisser quelques suggestions à quiconque se heurterait à un problème similaire.

Tout d’abord: cela m’a aidé à avoir une application de test simple que je pourrais utiliser pour déterminer si le problème était IIS. J’ai utilisé une simple application C # qui s’est connectée à ma firebase database Oracle. Mon objective était de faire en sorte que cela fonctionne correctement, ce que j’ai fait en installant le client instantané Oracle.

Prochaine étape: exécuter l’application avec un compte privilégié. J’ai utilisé mon propre compte administratif, sur lequel j’avais exécuté mon application de test.

Enfin, pour déterminer s’il s’agissait d’un problème 32/64 bits, j’ai vérifié dans le registre les emplacements de mes variables Oracle: HKLM / Software / Oracle ou HKLM / Software / WOW6432 / Oracle. J’ai également essayé d’exécuter SQLPLUS à partir de la ligne de commande et de vérifier le processus affiché sous la forme * 32 (pour indiquer une application 32 bits) dans le gestionnaire de processus.

Je crois que c’est à propos de ça. Il est clair qu’il n’y a pas de solution unique à ce problème, mais nous espérons que quiconque rencontrera cette question trouvera de l’aide dans les détails que j’ai fournis et dans les commentaires utiles ci-dessous.

Bien que vous n’ayez pas reçu de message d’erreur spécifique, il existe de fortes chances qu’il y ait une incompatibilité avec ODP.Net (numéros de version, DLL 32 bits ou 64 bits) installé localement ou sur votre serveur de test.

Cette réponse a plusieurs options qui pourraient aider.