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 битах, поэтому, если вы столкнетесь с какими-либо другими проблемами, вы будете самостоятельно.