System.Runtime.InteropServices.COMException 0x80040154 with CLSID 29131539-2EED-1069-BF5D-00DD011186B7

时间:2017-01-11 19:36:54

标签: c# lotus-notes interop-domino

过去两天我一直在寻找解决问题的方法。现在谷歌只显示我已经访问过的链接。

我收到以下错误:

    [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

我知道堆栈跟踪的某些部分是法语的。那是因为执行此代码的服务器是法语服务器。

这是我的代码:

    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();

代码继续。但我停止在有问题的路线上复制它 lotusNoteSession = new Domino.NotesSession()。该行触发错误。

我尝试使用regsvr32.exe注册Interop.Domino.dll

目标cpu已设置为x86

我该怎么做?

提前致谢

1 个答案:

答案 0 :(得分:1)

您还需要正确注册nlsxbe.dll。我很确定我之前在StackOverflow上看到了这个帖子,但我现在还没找到它们。

但是,根据此IBM Technote,64位操作系统不支持nlsxbe.dlll中位于Interop.Domino.dll后面的Notes COM类。它们可以主要用于工作,但如果您需要一个可以依靠能够在遇到问题时去IBM寻求支持的解决方案,那么您应该查看可用于Notes / Domino环境的其他API。避免使用COM,或找到在32位操作系统上运行它们的方法。

至于“大多数”部分,我记得的问题是返回设计元素集合的方法(例如,NotesDatabase.Views())。大多数类和方法确实起作用 - 包括那些返回单个元素的类(例如,getView())。但同样,这些类在64位上没有官方支持,所以如果你遇到任何其他问题,你将自己独立。