0

私はC#を介してNotesデータベース(私の個人的なメールファイル)と対話しようとしていますが、次のコードでデータベースを開こうとしています。

        string sNotesSourceFolder = "$Inbox";
        string sUserName = "scady";
        string sMailFile = @"NotesMail_FDrive\ARchives\" + sUserName + ".nsf";         
        string sServerName = @"Answers1/Answers";
        string sPassword = "xxxxxx";


        //Creating the notes session 
        NotesSession session = new NotesSession();
        session.Initialize(sPassword);
        NotesDatabase NotesDb = session.GetDatabase(sServerName, sMailFile, false);

        //If the database is not already open then open it. 
        if (!NotesDb.IsOpen)
        {
            NotesDb.Open();
        }

サーバー名とパスを指定してsession.GetDatabase()を呼び出すと、nsfファイルはnullを返します。これは、データベースを開くことができなかったことを意味します。

「Answers1/Answers」というNotesサーバーに対して、このコードをローカルで実行しています。私は今、Notesサーバーから、nsfファイルが「NotesMail_FDrive \ ARchives\xyz.nsf」のネットワークファイル共有にあることに基づいて考えています。

4

2 に答える 2

1

ファイルが置かれているサーバーはノーツ サーバーですか、それとも単なるネットワーク共有ですか?

ネットワーク共有の場合は、ドライブ マッピングが必要ですが、「ローカル」ドライブにアクセスするには、sServerName が "" になります。Notesdata1 は X 上のディレクトリであると想定しているので、ドライブ名である場合は削除します。

string sMailFile = @"X:\Notesdata1\NotesMail\ARchives\scady.nsf";
string sServerName = @"";

それがノーツ サーバーであり、かつ Notesdata1 がノーツ サーバーのデータ ディレクトリである場合、

string sMailFile = @"NotesMail\ARchives\scady.nsf";
string sServerName = @"Answers1/Answers";
于 2012-11-08T16:19:44.710 に答える
1

すみません、最初のパスでこれに気づきませんでした...

sMailFile の値は、「\10.10.10.71\notesdata1\NotesMail\ARchives\scady.nsf」であってはなりません。コメントアウトした他の 2 つの値も間違っています。getDatabase の引数は、Domino サーバーの識別名と相対パスです。サーバー IP、ボリューム、および "file:" プレフィックスはありません。このようなもの: "archives\scady.nsf". これは、ノーツ クライアントでデータベースを開いてデータベース プロパティ ダイアログを表示したときに表示されるパスとまったく同じである必要があります。

前の回答

sServername 変数には、Domino サーバーの識別名が含まれている必要があります。

しかし、なぜ File.Exists を使用しているのですか? Domino サーバーは、そのデータ ツリー内のすべてのファイルへの排他的アクセスを必要としています。ファイルシステム呼び出しを介して Domino サーバー上のファイルに実際に正常にアクセスしている場合は、Domino サーバーがアクセスできないようにロックしている可能性があります。

また、このコードをどこで実行していますか? 同じコンピューターで、通常メールを読むために使用するのと同じアカウントで実行していますか? または、別のコンピューターとアカウントで?

于 2012-11-07T22:03:55.307 に答える