Beiträge von Stay

    Erstma Danke für deinen Tipp.


    Ich kann die gar nicht öffnen:

    Zitat

    You are not authorized to perform that operation


    Ich bin aber als Admin angemeldet.

    Hallo zusammen,


    hab nur eine kurze und wahrscheinlich banale Frage:
    ich möchte meine lokale names.nsf austauschen gegen eine andere, die nicht von mir erstellt worden ist.


    - Geht das überhaupt?
    - Muss ich da irgendetwas beachten?
    - Falls ich es probiere und es geht nicht, kann ich dann ohne Weiteres meine "originale" names.nsf wieder einspielen?


    Danke und schöne Grüße,
    Stay

    Ja, weißt ja wie das in der Praxis so ist, man hat halt nicht immer den Überblick bzw. Zugriff auf das ganze System. Und Dokus sind auch immer sehr rar. :roll:


    Aber gut, wenn es so nicht geht, muss ich schauen, wie ich an die Info komme.


    Ich danke euch für eure Hilfe!


    Bis bald,
    Stay

    Vielen Dank erstmal für die Antworten.


    Wie würdet ihr nun vorgehen, um herauszufinden, was für eine Bedeutung dieses Feld hat?


    Ist euch diese Bezeichnung schon mal irgendwo anders über den Weg gelaufen? Ich kann auch aus der Benennung des Feldes, also "dspnum", nicht erkennen, worum es sich dabei handeln könnte. Hab ich bisher noch nirgends gesehen.


    Gruß,
    Stay

    Hi,


    das ist mir schon klar, dass das ein Feld ist.
    Dieses Feld existiert doch dann in jedem NotesDocument, aber wozu wird es benötigt?


    In einem Feld "subject" weiß ich, dass dahinter der Betreff des Dokuments steckt, hinter "Form" weiß ich, welche Art von Form es ist. Aber was ist mit dspnum? wozu bruacuht man es?


    Gruß,
    Stay

    Hallo zusammen,


    ich habe nur eine kurze Frage und finde nirgends eine Info dazu.


    Ich schaue mir gerade ein Code Snippet an.
    Dabei bin ich auf folgenden Ausschnitt gestoßen:


    Code
    ...
    NotesDocument nd = col.GetFirstDocument();
    hasDspNum = nd.HasItem("dspnum");
    ...


    Ich finde einfach nicht heraus, was "dspnum" sein soll.
    Weiß jemand, welche Info sich hinter diesem Item versteckt?


    Vielen Dank im Voraus!


    Grüße,
    Stay

    Ja, hast natürlich recht.
    Da ich die Änderung nicht gleich gesehen habe, habe ich das Replik auf dem Server gleich mitangepasst, was aber nicht nötig gewesen wäre. Aber ich dachte, die Einstellung wird nicht übernommen.
    War wohl zu ungeduldigt :)

    Ja, das dachte ich mir zwar, dass das Trennzeichen sein sollen, war mir aber nicht sicher, den Ausrufezeichen dazu zu benutzen finde ich irgendwie ungewöhnlich. Ausrufezeichen symbolisieren für mich eine Warnung.


    Zitat


    taurec schrieb:
    Ich hab auch schon feststellen müssen, daß .NET relativ bescheiden auf Zugriffs- oder andere Probleme beim COM Zugriff reagiert und dann meistens die externe Applikation abschießt.
    Das ist nichts was direkt an Notes liegt. Hab ich auch schon mit Word und Excel hinbekommen.


    Diese Erfahrung habe ich bisher noch nicht so gemacht.
    Aber wenn das tatsächlich so sein sollte, ist das ziemlich dürftig. Das sollte dann hoffentlich in .Net 3.0 verbessert sein.


    Zitat


    taurec schrieb:
    Den Zugriff kannst du nicht übers Mailfile einstellen, sondern musst du direkt über das lokale names.nsf des Users machen.


    Das hatte ich so versucht, aber die Einstellung galt dann auch nur dem lokalen names.nsf File, nicht aber der auf dem Server (was mich etwas gewundert hat, da es ja ein Replik ist und somit ein identisches Abbild sein sollte). Ich habe dann wie oben beschrieben, die Einstellungen am Replik auf dem Server verändert.

    So, und nochmal ich.


    Habe es geschafft, dass mein Programm beim Zugriff auf die names.nsf auf dem Server nicht abschmiert.


    Habe das folgendermaßen gelöst:
    1. Zuerst habe ich die names.nsf auf dem Server geöffnet
    2. Unter File --> Database --> Access Control habe ich meinen Admin hinzugefügt
    3. Dabei habe ich ihm entsprechende Rechte zugewiesen
    4. Das war's


    Ich konnte jetzt auf die names.nsf des TestUsers auf dem Server zugreifen und dessen Kontakte auslesen.


    So, jetzt hoffe ich, dass auch der Rest klappt, also neuen Kontakt anlegen und so weiter.


    Ich danke euch erst mal für eure ausführliche Hilfe und Bemühungen.


    Falls was nicht klappen sollte, melde ich mich noch mal.


    Bis dann und Grüße,
    Stay

    Ein kleines Lichtlein ist mir grad noch aufgegangen:


    Wie ihr an der Meldung der Exception erkennen könnt, versuche ich mit dem Admin die names.nsf des TestUsers zu öffnen. Vielleicht - wie auch schon taurec vermutet hat - ist es wirklich ein Zugriffsproblem.


    Die Mail DB konnte ich öffnen, weil ich da expliziten Zugriff über die ACL vergeben hatte.
    Und wie ich gerade sehen konnte, kann man da nur Zugriff für "Mail, Calendar and To Do" vergeben, aber nicht für Kontakte.
    Muss/Kann man die Zugriffsberechtigung für Kontakte an anderer Stelle delegieren?

    Na ja, die Fehlerstelle an sich hatte ich ja schon lokalisiert, deswegen hatte ich keinen Try-Catch-Block.


    Hab jetzt mal einen Try-Catch-Block um die Anweisung, die meinen Code zum abschmieren bringt, gebaut. Viel schlauer bin ich da allerdings auch nicht geworden, denn sie bringt nix Neues mit sich:


    Zitat


    System.Runtime.InteropServices.COMException (0x80040FDC): User CN=myAdmin/O=organization cannot open database CN=domino/O=organization!!roaming\\TestUser\\names.nsf\r\n at Domino.NotesSessionClass.GetDatabase(String pServer, String pFile, Boolean bCreateonfail)\r\n...


    Was mir aufgefallen ist, sind allerdings diese 2 Ausrufezeichen zwischen "organization" und "roaming". Weiß nicht, ob das normal ist, dass die da auftauchen. Ich meine, aus welchem Grund fügt man die da ein, was machen die da?


    Hoffentlich seid ihr dadurch schlauer :)

    Nein, das war leider nicht des Rätsels Lösung. Habe es gerade ausprobiert.
    Ohne das @-Zeichen meckert der Compiler, weil nicht richtig escaped wurde. Ich habe das @-Zeichen trotzdem mal weggelassen und innerhalb des Strings mit einem weiteren "\" escaped. Da kommt dann zwar kein Compilerfehler, aber eben wieder der Absturz.


    Allerdings hätte mich das auch ein wenig verwundert, wenn das an dem @-Zeichen gelegen hätte, denn die anderen Pfadangaben, die ich getestet hatte, funktionierten ja auch.


    Schade eigentlich, das wäre schön einfach gewesen :)

    Ok, hier der Code.


    Ich habe eine Methode zur Initialiserung der Session.
    Hier öffne ich auch die DB und gebe sie zurück. Da das Thema mit dem Roaming interessant wurde, habe ich die Methode erweitert um einen Parameter, der aussagt, ob die lokale names.nsf oder die auf dem Server geöffnet werden soll.
    Dies geschieht in einer Klasse NotesTest:


    Code
    public class NotesTest{        public NotesTest()        {        }        public NotesDatabase InitSession(bool local)        {            NotesSession session = new NotesSession();            session.Initialize("passwort");            Console.WriteLine("session init");            NotesDatabase db;            if (!local) db = session.GetDatabase("CN=benutzer/O=organisation", @"roaming\TestUser\names.nsf", false);            else db = session.GetDatabase("", "names.nsf", false);            if (!db.IsOpen)            {                Console.WriteLine("db not opened");                db.Open();                Console.WriteLine("db opened now");            }            else Console.WriteLine("db already open");            return db;        }}


    In der Haupt Klasse des Programms initialisiere ich ein Objekt vom Typ NotesTest und rufe die Methode InitSession auf:


    Code
    class Program{        static void Main(string[] args)        {            NotesTest t1 = new NotesTest();            NotesDatabase db = t1.InitSession(false);            if (db!=null)   Console.WriteLine("db open");        }}


    Der Rest ist an der Stelle wohl eher unwichtig, weil das Program diese Codezeilen hier ja gar nicht überschreitet. Der Absturz passiert in der Methode InitSession, und da an der Stelle, an der ich


    Code
    db = session.GetDatabase("CN=benutzer/O=organisation", @"roaming\TestUser\names.nsf", false);


    aufrufe. Und wie schon erwähnt, wenn ich nicht names.nsf zu öffnen versuche, sondern bookmark.nsf, funktioniert es.


    Irgendwie komme ich an der Stelle nicht weiter.

    Nachtrag: Vor und nach TestUser ist jeweils ein "\", das hier allerdings nicht angezeigt wird.

    Ja, berechtigter Einwand :)
    Es ist eine "Lotus Notes Error Notification". "An Error has occurd in a Lotus Notes application".
    Mehr kann ich auch nicht sagen.


    Ich habe mit dem aktuellen User aber Zugriff auf die Mail DB des TestUsers. Kann es trotzdem eine Zugriffberechtigungs-Sache sein?

    Hallo,


    ich versuche die Variante mit dem Roaming umzusetzen, stoße da aber auf ein Problem.


    Ich habe einem TestUser die Roaming Eigenschaft gegeben und will nun das Replik auf dem Mailserver ansprechen, also die names.nsf auf dem Server zu öffnen.


    Das versuche ich wie folgt:


    Code
    NotesSession session = new NotesSession();session.Initialize(myPass);NotesDatabase db = session.GetDatabase(myServer, @"roaming\TestUser\names.nsf", false);


    Genau an der Stelle krieg ich eine Exception ausgeworfen.


    Versuche ich aber eine andere DB zu öffnen, die sich in dem gleichen Ordner wie die names.nsf befindet, funktioniert das einwandfrei. Also beipielsweise so:


    Code
    NotesDatabase db = session.GetDatabase(myServer, @"roaming\TestUser\bookmark.nsf", false);


    Wieso kann ich die names.nsf DB auf dem Server nicht öffnen? Geht das allgemein aus irgendwelchen Sicherheitsgründen nicht oder mache ich etwas falsch?


    Gruß,
    Stay

    Wow!!! Das nenne ich mal eine ausführliche und hervorragende Antwort und Hilfestellung! Vielen Dank dafür!


    Ich werde mir die Sachen, die du erwähnt hast (INotes Schablone, Roaming, ...) mal genauer anschauen und mich etwas tiefer damit beschäftigen.


    Ich werde mich dann wieder melden, wenn Fragen auftauchen (was sehr wahrscheinlich ist :roll: ) .


    Vorerst nochmal vielen Dank!


    cu,
    Stay