J'ai besoin de vos conseils pour le code C#:composant COM fonctionne à 100% à partir d'une application de la console, mais échoue lorsqu'il est appelé d'un service
EgarDDSEnt.IIVDDSEnt dds = null; // This line executes fine.
dds = new IVDDSEnt(); // This line fails with an exception ...
dds.Connect("username", "password"); // ... which makes this line fail too.
Voici les symptômes:
Windows Server 2008 R1 :
- Le code échoue lorsqu'il est exécuté à partir d'une application de service Windows.
- Le code fonctionne à 100% lorsqu'il est exécuté à partir d'une application de console.
Windows 7:
- code fonctionne à 100% lorsqu'il est exécuté à partir d'une application de service Windows.
- Le code fonctionne à 100% lorsqu'il est exécuté à partir d'une application de console.
La classe IVDDSEnt() est un objet COM installé sur lequel vous installez le "SDK ivolatility".
Mise à jour:
- Lorsque j'exécute de l'application de la console "System.IO.Directory.GetCurrentDirectory()", il retourne "D: \ MyDevDirectory \"
- Quand j'execute « système .IO.Directory.GetCurrentDirectory() "de l'application de service, il renvoie" C: \ windows \ system32 \ ".
- L'application est en fait le même binaire pour le service et la console (c'est une application hybride qui peut fonctionner en mode console, ou s'installer en tant que service si vous lui passez "service" sur la ligne de commande).
Mise à jour:
Ajouté try/catch et "e.GetBaseException" (défini comme "Renvoie l'exception qui est la cause première d'une ou plusieurs exceptions suivantes"):
System.Runtime.InteropServices.COMException (0x80080005): Retrieving
the COM class factory for component with CLSID
{FA944FE7-AEB8-4B5B-8315-11D19B1F6264} failed due to the following error:
80080005 Server execution failed (Exception from HRESULT:
0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
at PhiDataOnSchedule.ConsoleApplication.MyMain(Boolean dummyRun)
Mise à jour:
peut toujours pas résoudre le problème - la méthode la plus simple de mettre à niveau juste de Serv de Windows 2008 R1 à Windows Server 2008 R2 (si cela fonctionne sur Win7, et Windows Server 2008 R2 a un noyau Win7, peut-être que ça va contourner le problème sous-jacent?).
« échoue avec une exception » vous pensez qu'il serait utile de nous dire ce que ** ** exception? –
Certainement besoin de la décharge d'exception ou nous n'allons nulle part. – Squirrelsama
L'exception ne semble pas très utile: 'MyHelper.LogThis.OnException: Exception "NullReferenceException": "Référence d'objet non définie sur une instance d'un objet."'. Y a-t-il un moyen d'obtenir une décharge d'exception plus complète? – Contango