2017-04-20 3 views
0

Ich wollte E-Mails mit Anhängen aus Lotus Notes senden.senden Sie E-Mail von Lotus Notes mit Anhang mit asp.net C#

Ich habe versucht, dies unter Code ist es zeigt Fehler:

Fehler:

An exception of type 'System.Runtime.InteropServices.COMException' occurred in App_Web_sendemail.aspx.cdcab7d2.s2ysjl2c.dll but was not handled in user code 

Additional information: Database open failed (xx.xxx.xxx.xxx!!names.nsf) 

Code:

Domino.NotesSession nSession = new Domino.NotesSession(); 
     nSession.Initialize("bbau0862"); //Password 

     Domino.NotesDatabase nDatabase = 
    nSession.GetDatabase("xx.xxx.xxx.xxx", "names.nsf"); 

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

     Domino.NotesDocument nDocument = nDatabase.CreateDocument(); 
     /*create string variable that will be passed to function. This way we setup To field value*/ 
     string[] recipients = 
      {"[email protected]", "[email protected]"}; 

     //setup Form 
     nDocument.ReplaceItemValue("Form", "Memo"); 
     nDocument.ReplaceItemValue("SentTo", recipients); //To field 
     nDocument.ReplaceItemValue("Subject", "Message subject"); //message subject 
     nDocument.ReplaceItemValue("Body", "Something in the message body"); //set body text 
     nDocument.SaveMessageOnSend = true; //save message after it's sent 
     nDocument.Send(false, recipients); //send 

mir bitte sagen, wie Lotus senden Notes E-Mail mit Anhängen in asp .Netz.

Vielen Dank.

Antwort

-1

es ist mir passiert, ich bekomme diesen Fehler mit Domino mit C# oder Powershell. Ich denke, Sie versuchen, eine 32-Bit-Domino-COM-Komponente (64-Bit existiert nicht für Domino-Client) in einer 64-Bit-Anwendung. bedeutet es Domino Composant wird in einer * 86 Powershell-Konsole arbeiten, wenn es diesen Fehler in einer 64-Bit-Powershell-Konsole wirft.

Lösung Ich fürchte ist, Projekt für * 86 zu rekompilieren!

Blick hier für mehr Details: Is a COMException of 0x80040154 always 'Class not registered'?

so Punkt, den ich Sie in meiner Erfahrung Domino COM mit sehr bugy Sie besser Ihr Domino-Team eine Webservice von Benutzerinformationen machen.

mit Domino zum Beispiel erzwingen alles läuft als x86. und in einer clientseitigen App stürzt die COM bei jedem C# unbeabsichtigten Fehler ab, der gleichzeitig den Lotus Notes Client Ihrer Benutzer (BOSS?) Kiling.

+1

Das ist nicht der Fehler Er bekam "Datenbank geöffnet fehlgeschlagen (xx.xxx.xxx.xxx !! Names.nsf)".Der Code wäre nie so weit gekommen, wenn er die Klasse nicht geladen hätte. –

2

Ihr Code konnte die Datenbank 'names.nsf' nicht öffnen. Bevor Sie nach dem Senden einer E-Mail mit Anhängen fragen, müssen Sie herausfinden, warum Ihr Code die Datenbank nicht öffnen konnte.

Einige der möglichen Erklärungen dafür sind: Sie haben keine Verbindung zum Server hergestellt, Sie haben keinen Zugriff auf den Server oder Sie haben keinen Zugriff auf die Datenbank. Sie müssen all diese Dinge überprüfen.

Welcher IBM Lotus-Code ist auf dem Computer installiert, auf dem der Code ausgeführt wird? Ist der Notes Client-Code installiert oder ist der Domino Server-Code installiert? Das eine oder das andere muss es sein, und wenn es der Servercode ist, muss es die 32-Bit-Version sein, da IBM 64-Bit-COM-Klassen für Domino nicht unterstützt.

Sie müssen überprüfen, ob der Code eine Verbindung zum Server 'xx.xxx.xxx.xxx' herstellen kann. Sowohl der Client als auch der Server verfügen über Ablaufverfolgungsfunktionen, mit denen Sie dies überprüfen können. Siehe help for client trace) oder help for server trace.

Sie müssen auch überprüfen, ob die aktuelle Benutzer-ID (diejenige, die dem Kennwort "bbau0862" entspricht, das Sie an die Initialize()-Methode übergeben und die aktuelle ID sein muss), auf die der Schlüsseldateiname oder Serverschlüsseldateiname verweist Einträge in der Datei notes.ini des Notes Clients oder der Domino Server Installation auf dem - haben Zugriff auf den Server 'xx.xxx.xxx.xxx' und auf die Datenbank 'names.nsf' Server, sollte es Zugriff auf names.nsf haben, aber wenn es eine Art "spezielle" ID ist, die Ihnen speziell für Ihre Anwendung gegeben wurde, sollten Sie wirklich überprüfen! Beide von diesen sind einfach zu überprüfen, mit einem Notes-Client und diese ID.