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

Последние два дня я искал решение своей проблемы. Теперь Google показывает только те ссылки, которые я уже посетил.

Я получаю следующую ошибку:

    [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(), Эта строка вызывает ошибку.

Я попытался зарегистрировать Interop.Domino.dll с regsvr32.exe

Целевой процессор уже установлен на x86

Что мне нужно сделать?

заранее спасибо


1 ответ

Вам также необходимо правильно зарегистрировать nlsxbe.dll. Я почти уверен, что я видел сообщения, которые освещают это здесь, в Stackru, но сейчас я их не нахожу.

Однако в соответствии с данным IBM Technote COM-классы Notes, которые находятся в nlsxbe.dlll и находятся за Interop.Domino.dll, не поддерживаются в 64-битной ОС. Их можно заставить работать в основном, но если вам нужно решение, которое вы можете рассчитывать на возможность обратиться в службу поддержки IBM, если у вас возникнут проблемы, вам следует обратиться к другим API, которые доступны для среды Notes/Domino, и избегайте COM или найдите способ запустить их на 32-битной ОС.

Что касается "большей части", то проблемы, которые я вспоминаю, связаны с методами, которые возвращают коллекции элементов дизайна (например, NotesDatabase.Views()). Большинство классов и методов действительно работают - включая те, которые возвращают отдельные элементы (например, getView()). Но опять же, нет никакой официальной поддержки этих классов на 64 битах, поэтому, если вы столкнетесь с какими-либо другими проблемами, вы будете самостоятельно.

Другие вопросы по тегам