c # – Microsoft Access ne s'installe pas correctement dans Windows Server 2012 R2 – Les meilleures astuces pour son serveur

Author: Titanfall —

Short summary: J'ai un code d'automatisation C # qui extrait des données de Microsoft Excel. Lorsque j'essaie d'exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d'erreur ci-dessous s'affiche. & # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération Fabrique de classe COM pour composant avec CLSID 00024500-0000-0000-C000-000000000046 a échoué pour l'une des raisons suivantes erreur: 80040154 […]

Quick overview

Site
Tutos GameServer
Canonical URL
https://tutos-gameserver.fr/2019/07/07/c-microsoft-access-ne-sinstalle-pas-correctement-dans-windows-server-2012-r2-les-meilleures-astuces-pour-son-serveur/
LLM HTML version
https://tutos-gameserver.fr/2019/07/07/c-microsoft-access-ne-sinstalle-pas-correctement-dans-windows-server-2012-r2-les-meilleures-astuces-pour-son-serveur/llm
LLM JSON version
https://tutos-gameserver.fr/2019/07/07/c-microsoft-access-ne-sinstalle-pas-correctement-dans-windows-server-2012-r2-les-meilleures-astuces-pour-son-serveur/llm.json
Manifest
https://tutos-gameserver.fr/llm-endpoints-manifest.json
Estimated reading time
4 minutes (183 seconds)
Word count
610

Key points

Primary visual

c # – Microsoft Access ne s'installe pas correctement dans Windows Server 2012 R2

– Les meilleures astuces pour son serveur
Main illustration associated with the content.

Structured content

J'ai un code d'automatisation C # qui extrait des données de Microsoft Excel. Lorsque j'essaie d'exécuter ce code sur une machine virtuelle (Windows Server 2012 R2), le message d'erreur ci-dessous s'affiche.

& # 39; System.Runtime.InteropServices.COMException (0x80040154): Récupération Fabrique de classe COM pour composant avec CLSID 00024500-0000-0000-C000-000000000046 a échoué pour l'une des raisons suivantes erreur: 80040154 Classe non enregistrée (exception de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). & # 39;

J'ai trouvé que Microsoft Access n'est pas installé et j'ai essayé d'installer le même (Microsoft Access 2013 Runtime), l'installation est réussie. Mais étrangement, il n'est pas complètement installé. en C: Fichiers de programme (x86) Microsoft Office Office15 Je ne vois que quelques DLL (dll Microsoft.Office.Interop.Access manquantes dans les références de projet) par rapport aux DLL de mon système local. De plus, il n'y a pas d'enregistrement dans le registre avec la clé 00024500-0000-0000-C000-000000000046 Code pour obtenir des données à partir d'Excel dictionnaire statique public GetExcelData (strict testDatapath, strict testDataSheet, strict test caseID) { testCaseValues.Clear (); Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application (); Classeur = null; Gamme gamme = zéro; bool arrayFlag = false; int iVal = 0; ArrayList excelValues ​​= new ArrayList (); ArrayList header = new ArrayList (); essayer { app.Visible = false; app.ScreenUpdating = false; app.DisplayAlerts = false; bok = app.Workbooks.Open (testDatapath); Console.WriteLine ("récupère Excel à partir de" + testDatapath); foreach (Feuilles de travail en feuilles. Feuilles de travail) { if (sheet.Name.Equals (testDataSheet)) { Console.WriteLine ("La fiche de test est" + testDataSheet); // obtenir une sélection pour travailler avec range = sheet.get_Range ("A1", Missing.Value); // place la fin des valeurs à droite (s'arrête à la première cellule vide) range = range.get_End (XlDirection.xlToRight); // termine les valeurs vers le bas, voir dans la dernière colonne (s'arrête à la première cellule vide) range = range.get_End (XlDirection.xlDown); // récupère l'adresse du bas, cellule de droite strict downAddress = range.get_Address (false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing); // Obtenir la plage, puis les valeurs de a1 range = sheet.get_Range ("A1", downAddress); sujet[,] valeurs = (objet[,]) Range.Value2; // Pour attacher les valeurs d'en-tête pour (int headCount = 1; headCount <= values.GetLength (1); headCount ++)

essayer

header.Add ((string) values.GetValue (1, headCount)); arrayFlag = true;

capture (Exception ApplicationException)

Console.WriteLine (ApplicationException.Message); arrayFlag = false; pause

// Récupérer les données de test if (arrayFlag == true)

pour (int i = 1; i <= valeurs.GetLength (0); i ++)

pour (int j = 1; j <= valeurs.GetLength (1); j ++)

strictement actualTestCaseID = (chaîne) values.GetValue (i, 1); // Console.WriteLine ("Le cas de test réel est" + actualTestCaseID); if (actualTestCaseID.Equals (testID case))

Console.WriteLine ("Inside if"); iVal = i; arrayFlag = true; pause

if (arrayFlag == true)

// Ajouter des valeurs Excel pour (int j = 1; j <= valeurs.GetLength (1); j ++)

excelValues.Add ((string) values.GetValue (iVal, j));

// Créer HashmapTable int colCount = sheet.UsedRange.Columns.Count; pour (int hashVal = 0; hashVal <= colCount - 1; hashVal ++)

si (excelValues[hashVal] ! = null)

testCaseValues.Add (en-tête[hashVal].ToString (), excelValues[hashVal].ToString ());

autrement

testCaseValues.Add (en-tête[hashVal].ToString (), "");

pause } } } prise (exception e)

caste e;

enfin

plage = zéro; si (livre! = null) book.Close (false, Missing.Value, Missing.Value); bok = null; si (app! = null) app.Quit (); app = null;

renvoyer testCaseValues; }

Je m'attends à ce qu'Excel soit correctement installé après l'installation du logiciel "Access runtime", mais comme il est installé, j'obtiens la même erreur que celle décrite ci-dessus.

Click to rate this post! [Total: 0 Average: 0]

Topics and keywords

Themes: Non classé

License & attribution

License: CC BY-ND 4.0.

Attribution required: yes.

Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json

LLM Endpoints plugin version 1.1.2.