2017-01-11 5 views
-1

Ich habe in den letzten zwei Tagen nach einer Lösung für mein Problem gesucht. Jetzt zeigt Google nur die Links an, die ich bereits besucht habe.System.Runtime.InteropServices.COMException 0x80040154 mit CLSID 29131539-2EED-1069-BF5D-00DD011186B7

bekomme ich folgende Fehlermeldung:

[COMException (0x80040154): La récupération de la fabrique de classes COM pour le composant avec le CLSID {29131539-2EED-1069-BF5D-00DD011186B7} a échoué en raison de l'erreur suivante : 80040154 Classe non enregistrée (Exception de HRESULT : 0x80040154 (REGDB_E_CLASSNOTREG)).] 
    Default2.initSession() in c:\inetpub\wwwroot\GestionDomino\Default.aspx.cs:45 
    Default2.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\GestionDomino\Default.aspx.cs:32 
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51 
    System.Web.UI.Control.OnLoad(EventArgs e) +92 
    System.Web.UI.Control.LoadRecursive() +54 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772 

Ich weiß, dass es ein Teil der Stacktrace ist, die in Französisch ist. Der Server, der diesen Code ausführt, ist ein französischer Server.

Hier ist mein Code:

public partial class Default2 : System.Web.UI.Page 
    { 
     Domino.NotesSession lotusNoteSession; 
     Domino.NotesDatabase localDatabase; 
     Domino.NotesView specificView; 

     protected void Page_Load(object sender, EventArgs e) 
     { 

      //authentifies the user 
      checkAuthen(); 
      //opens the domino session 
      initSession(); 
      //fill the gridview 
      if (!IsPostBack) 
      { 
       FillgvVue(); 
      } 
     } 

     protected void initSession() 
     { 
      //opens the domino session 
      lotusNoteSession = new Domino.NotesSession(); 

Und der Code weiter. Aber ich hörte auf, es an der problematischen Linie lotusNoteSession = new Domino.NotesSession() zu kopieren. Diese Zeile löst den Fehler aus.

versuchte ich Interop.Domino.dll mit regsvr32.exe

die Ziel-CPU auf x86 bereits gesetzt

Was kann ich tun, ist die Registrierung müssen?

Vielen Dank im Voraus


+0

Wenn Sie nicht bewusst waren; Du hast ein Passwort im Klartext gepostet. Möglicherweise möchten Sie es entfernen und Revision scrubbing anfordern, damit es nicht für immer verfügbar ist. – BradleyDotNET

+0

@BradleyDotNET _ "Request Revision Scrubbing" _ - Ich glaube nicht, dass das sehr oft getan wird. Wenn es nach mir ginge, würde ich mit "Pech gehabt, passwörter ändern" antworten. Zumal Google diese Seite in wenigen Sekunden indiziert. – CodeCaster

+0

@CodeCaster True, aber IIRC gab es einige Meta-Beiträge, die darauf hinwiesen, dass sie es für so etwas tun würden. Das Ändern von Passwörtern ist immer noch eine gute Idee. – BradleyDotNET

Antwort

1

Sie müssen richtig registrieren nlsxbe.dll auch. Ich bin mir ziemlich sicher, dass ich in StackOverflow bereits Posts gesehen habe, die das hier abdecken, aber ich finde sie jetzt nicht.

Wie jedoch IBM Technote, die Notes-COM-Klassen, die in nlsxbe.dlll sind und hinter der Interop.Domino.dll sind nicht auf einem 64-Bit-Betriebssystem unterstützt. Sie können so konfiguriert werden, dass sie größtenteils funktionieren. Wenn Sie jedoch eine Lösung benötigen, mit der Sie bei Problemen mit IBM zur Unterstützung rechnen können, sollten Sie sich die anderen APIs ansehen, die für die Notes/Domino Umgebung verfügbar sind Vermeiden Sie COM, oder finden Sie eine Möglichkeit, sie auf einem 32-Bit-Betriebssystem auszuführen.

Wie für den "meist" Teil, die Probleme, die ich erinnere, sind mit den Methoden, die Sammlungen von Design-Elementen (z. B. NotesDatabase.Views()) zurückgeben. Die meisten Klassen und Methoden scheinen zu funktionieren - einschließlich derer, die einzelne Elemente zurückgeben (z. B. getView()). Aber auch hier gibt es keine offizielle Unterstützung für diese Klassen auf 64 Bit. Wenn Sie also auf andere Probleme stoßen, sind Sie auf sich allein gestellt.

Verwandte Themen