gpt4 book ai didi

lotus-notes - 为什么 NotesSession.GetDatabase() 会返回 null?

转载 作者:行者123 更新时间:2023-12-02 06:44:16 24 4
gpt4 key购买 nike

我正在尝试用代码打开 names.nsf。这段代码已经工作了一段时间,但突然间,我变得空了。知道为什么吗?我似乎没有收到任何错误,而且我不知道如何找出问题所在。

我可以在同一台机器上从 Notes 客户端打开数据库。

更新

这是代码。这些字段在构造函数中初始化。空引用出现在 .IsOpen() 消息上。

public class DominoPersonSearcher
{
private string _serverName;
private string _databaseFileName;
private string _password;
private Domino.NotesDatabase OpenDatabase(out Domino.NotesSession notesSession)
{
notesSession = new Domino.NotesSessionClass();
notesSession.Initialize(this._password);

Domino.NotesDatabase notesDatabase;
notesDatabase = notesSession.GetDatabase(this._serverName, this._databaseFileName, false);

if (!(notesDatabase.IsOpen))
{
notesDatabase.Open();
}
return notesDatabase;
}

此代码是 C# 并在 Web 服务器上运行;它不在数据库中——它在 Notes 之外运行,只是调用它。我已经多次使用这种确切的机制。它使用名为 Interop.Domino.dll 的 Lotus Domino Objects COM C:\notes\domobj.tlb 周围的 .NET 包装器。 Domino 安装在不同的服务器上。

最佳答案

从 getdatabase 返回 null 意味着您无法访问数据库。如果您将其作为 Java 代理运行,那么它将在您的权限下运行。服务器可以配置为限制谁可以通过服务器上的代理访问数据库。

尝试在您具有相同访问权限的服务器上打开另一个数据库或您具有管理员访问权限的数据库。这样做会检查您是否可以通过服务器上的代理打开数据库。如果你也不能打开这个数据库,那么这听起来像是服务器的权限问题。它不是数据库本身,因为您可以通过 Notes 客户端访问它。

一种解决方法是,您还可以告诉代理在服务器 ID 下运行。这通常可以解决访问问题。代理的安全选项是“代理属性”对话框中的最后一个选项卡。请注意,此选项也可以通过服务器设置进行控制,如果您也不允许这样做,您将收到一条错误消息。让我知道你过得怎么样..

关于lotus-notes - 为什么 NotesSession.GetDatabase() 会返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2582998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com