过去两天我一直在寻找解决问题的方法。现在谷歌只显示我已经访问过的链接。
我收到以下错误:
[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
我该怎么做?
提前致谢
答案 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位上没有官方支持,所以如果你遇到任何其他问题,你将自己独立。