Beschreibung von CDONTS und der Behandlung von CDONTS-Problemen in Windows 2000 und Windows NT 4.0

Einführung

Dieser Artikel beschreibt Collaboration Data Objects für Microsoft Windows NT Server (CDONTS). Dieser Artikel enthält außerdem Schritte zur Problembehandlung, mit denen Sie Fehler, die auftreten können, wenn Sie ein Objekt erstellen oder wenn Sie eine Nachricht senden. Um Probleme zu beheben, die bei Verwendung von CDONTS-Objekten auftreten können, müssen Sie verstehen, was geschieht, wenn der Code ausgeführt wird. In der Regel sind nicht mit dem Code selbst Probleme. Probleme werden im Allgemeinen durch die Einrichtung des Simple Mail Transfer Protocol (SMTP).

zurück zum Anfang

Definition von CDONTS

CDONTS ist eine COM-Komponente, die die folgenden Objektschnittstellen verfügbar macht:
  • NewMail -Objekt
  • Session -Objekt
NewMail -Objekt ist das am häufigsten verwendete Objekt.

CDONTS wird in erster Linie von Webentwicklern als thin Client für mailen von Webformularen verwendet. Die DLL für CDONTS, auch bekannt als Cdonts.dll ist mit Microsoft Windows NT Option Pack 4 installiert. Der SMTP-Dienst muss ebenfalls installiert sein. Windows NT Option Pack 4 wird mit Abwärtskompatibilität für Microsoft Windows 2000 installiert. Wir empfehlen jedoch CDO für Windows 2000 (CDOSYS) für das Betriebssystem Windows 2000.

CDONTS arbeitet direkt mit dem SMTP-Dienst auf dem Computer Internetinformationsdienste (IIS).

zurück zum Anfang

Funktionsweise von CDONTS

Zur Veranschaulichung der Funktionsweise von CDONTS, verwenden Sie den folgenden ASP-Beispielcode:
Dim objMailSet objMail = CreateObject("CDONTS.NewMail")
ObjMail.Send "yourmail@somewhere.com", "someone@somewhere.com", "Subject", "This is the body."
Set objMail = Nothing
Im folgenden finden eine Beschreibung der Vorgänge in diesem Beispielcode:
  1. Das Variable objMail wird erstellt.
  2. CDONTS . NewMail -Objekt erstellt, und dann die CDONTS. NewMail Variablenobjekt objMail Objekt zugewiesen ist.
  3. Die Send -Methode NewMail Object ausgeführt und übergeben die e-Mail-Adresse von, an e-Mail-Adresse, den Betreff und Text.
  4. Das Variable objMail zerstört das Objekt auf Nothingfestlegen.
Hinweis Wenn Sie ein CDONTS-Problem behandeln, stellen Sie sicher, dass der vorangegangene Beispielcode aus einer ASP-Seite oder einer VBS-Datei funktioniert. Wenn der Code nicht funktioniert, ist das Problem kein Codeproblem. Das Problem ist wahrscheinlich ein SMTP-Dienst-Setup-Problem.

zurück zum Anfang

Erstellen eines NewMail-Objekts

Beim Erstellen eines NewMail -Objekts wird der Prozess die Registrierung durchsucht und ermittelt den Speicherort der Datei. Der Speicherort der Datei wird von den InProcServer32 -Schlüssel abgerufen. NewMail -Objekt erstellt und dann in den Speicher gesetzt.

zurück zum Anfang

Aufrufen der Send-Methode

Beim Aufrufen der Send -Methode greift auf das NewMail -Objekt der Metabasis festlegen, die E-mail (.eml) Datei. NewMail Object erstellt eine e-Mail-Nachricht, die basierend auf den Feldern, die in das NewMail -Objekt festgelegt und dann schreibt die EML-Datei an, die in der Metabasis angegeben .

CDONTS ist nun abgeschlossen. Der Rest des Prozesses wird der SMTP-Dienst abgeschlossen.

zurück zum Anfang

PROBLEMBEHANDLUNG

Können Sie die folgenden Verfahren zur Problembehandlung.

zurück zum Anfang

Erkennen der Fehler, die durch Objekt-Fehlermeldungen angezeigt werden

Die folgenden Fehlermeldungen erhalten:

Fehlermeldung 1

Laufzeitfehler ' 429 - ActiveX kann Objekt erstellen
Fehlermeldung 2
Fehler ' 8002801d ' Bibliothek nicht registriert
Weitere Informationen zur Fehlermeldung 8002801d klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

259176 Fehlermeldung 8002801d tritt auf, wenn Sie ein CDONTS erstellen. NewMail-Objekt

Diese Fehlermeldungen können aus den folgenden Gründen angezeigt werden:
  • Wenn der Prozess die Registrierung zu den Speicherort der Datei sucht, der Prozess möglicherweise keinen Zugriff auf den Registrierungsschlüssel oder die Registrierungsschlüssel existiert nicht in der Registrierung.

    Zum Beheben dieses Problems sicher, dass der SMTP-Dienst für IIS installiert, Datei auf dem Computer vorhanden ist und Datei registriert ist.

    Wenn Datei nicht registriert ist, folgendermaßen Sie vor, um die Datei zu registrieren:

    Klicken Sie auf Start, klicken Sie auf Ausführen, geben Sie Regsvr32 CDONTS.dllund klicken Sie dann auf OK.
  • ASP wird auf einem Terminalserver ausgeführt. Weitere Informationen zu dieser Fehlermeldung klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

    217067 BUG: CDONTS NewMail Object schlägt auf terminal Server-Client

  • Es bestehen Berechtigungsprobleme. Um festzustellen, ob Berechtigungsprobleme das Problem sind, melden Sie sich mit Administratorrechten am Computer an. Erstellen Sie eine VBS-Datei auf dem Desktop mithilfe den Beispielcode im Abschnitt Funktionsweise von CDONTS . Verwenden Sie die ASP-Tags.

    Als ein anderes Verfahren zur Behandlung von Berechtigungsproblemen können richten Sie das virtuelle Verzeichnis in IIS nur Standardauthentifizierung und anschließend eine Datenzugriffsseite als Administrator.

    Wenn immer noch Berechtigungsprobleme bestehen, entfernen Sie den SMTP-Dienst für IIS SMTP-Dienst für IIS installieren und Neuinstallieren von Windows NT Option Pack 4.
zurück zum Anfang

Erkennen der Fehlermeldung, die auftritt, wenn Sie eine Nachricht senden

Wenn Sie versuchen, eine Nachricht zu senden, erhalten Sie folgende Fehlermeldung:
Microsoft VBScript-Laufzeitfehler '800a0046 ' Zugriff Berechtigung verweigert
Weitere Informationen zu dieser Fehlermeldung klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

286301 zur Laufzeit Fehler 800a0046 mit CDONTS. NewMail-Objekt

Dieses Problem tritt auf, wenn eine Anwendung Out-of-Process-Ausführung in IIS. Wenn dieses Problem auftritt, den Benutzerkontext des Prozesses ändert IUSR_MachineName-Konto, das Zugriff auf die IIS-Metabasis auf das Konto "IWAM_Computername" verfügt, die keinen Zugriff auf die IIS-Metabasis.

Dieser Fehler hat typischerweise zwei Ursachen.

Ursache 1 Der Benutzer, unter dem die ASP-Seite oder das Skript, ist nicht berechtigt, das Pickup-Verzeichnis. Das Pickup-Verzeichnis befindet sich normalerweise an den folgenden Speicherorten:
  • Für Computer, die nur IIS ausführen:
    C:\Inetpub\Mailroot\Pickup
  • Für Computer mit Microsoft Exchange 5.5:

    Exchsrvr\Mailroot\Pickup
  • Für Computer mit Exchange 2000:
    \Program files\Exchsrvr\Mailroot\Vsi #\Pickup
Der Benutzer, unter dem die ASP-Seite oder das Skript, muss Ändern das Pickup-Verzeichnis berechtigt, damit das NewMail -Objekt die EML-Datei erstellen kann.

Ursache 2 Die Seite wird in einem eigenen Speicherbereich ausgeführt und erhält keinen Zugriff auf die IIS-Metabasis. Gehen Sie hierzu folgendermaßen vor:
  1. Klicken Sie auf Start, klicken Sie auf Ausführen, geben Sie Inetmgrund klicken Sie dann auf OK.
  2. Maustaste auf das Stammverzeichnis oder das virtuelle Verzeichnis, das Ihre Seite enthält, und klicken Sie auf Eigenschaften.
  3. Wenn Sie in Schritt 2 das Stammverzeichnis geklickt haben, klicken Sie auf die Registerkarte Basisverzeichnis .

    Wenn Sie das virtuelle Verzeichnis in Schritt 2 geklickt haben, klicken Sie auf der Registerkarte Virtuelles Verzeichnis .
  4. Auf einem Windows NT-Computer zu bestimmen, ob das Kontrollkästchen getrennter Speicherbereich ausführen aktiviert ist. Wenn das Kontrollkästchen getrennter Speicherbereich ausführen aktiviert ist, deaktivieren Sie das Kontrollkästchen. Alternativ im Menü Eigenschaften des SMTP-Dienstes klicken Sie auf die Registerkarte Operatoren , und fügen Sie das Konto "IWAM_Computername".

    Auf einem Windows 2000-Computer zu bestimmen, ob der Schutz auf Hoch (isoliert)eingestellt ist. Setzen Sie der Anwendungsschutz auf Hoch (isoliert)eingestellt ist, die Einstellung Anwendungsschutz Mittel (zusammengefasst). Alternativ im Menü Eigenschaften des SMTP-Dienstes klicken Sie auf die Registerkarte Sicherheit , und fügen Sie das Konto "IWAM_Computername" Operatoren .
zurück zum Anfang

Erkennen eines MTS-Fehlers

Aufgrund eines Fehlers Microsoft Transaction Server (MTS) erhalten Sie die folgenden Fehlermeldungen angezeigt:

Fehlermeldung 1
Sendefehler Methode '8009000d' Methode ' ~' des Objekts ' ~' ist fehlgeschlagen
Weitere Informationen zu dieser Fehlermeldung klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

235541 CDONTS Anwendung in MTS fehl: "Fehler 800900 d"

Fehlermeldung 2
Fehlercode-2146893811 0x8009000D "Der Schlüssel ist nicht vorhanden"
Um dieses Problem zu beheben, installieren Sie Windows NT 4.0 Service Pack 6. Alternativ können Sie die Abhilfemaßnahmen, die in den vorstehenden Artikeln in diesem Abschnitt beschrieben werden.

zurück zum Anfang

Erkennen eines Pfadfehlers

Die folgenden Fehlermeldungen erhalten:

Fehlermeldung 1
ERROR_SHARING_VIOLATION
Fehlermeldung 2
SMTP-Fehler: 80070020: der Prozess kann nicht auf die Datei zugreifen, da es von einem anderen Prozess verwendet wird
Diese Fehlermeldungen können aus den folgenden Gründen auftreten:
  • Das Pickup-Verzeichnis, das in der IIS-Metabasis angegebene Pfad ist falsch, oder die Metabasis beschädigt. Verwenden Sie zum Beheben dieses Problems das Hilfsprogramm "AdsUtil.vbs" bestimmen, die Metabasis Pfad für das Pickup-Verzeichnis verweist. Für Weitere Informationen klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

    238956 Fehler 80070003 "Pfad nicht gefunden Fehler"

  • Die Fehlermeldungen können auf einem Computer auftreten, die Windows NT 4.0 Server ausgeführt wird, wenn Sie mehrere Nachrichten senden und wenn Sie diesen Fehler nicht das Update angewendet haben. Weitere Informationen, klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:

    181697 Update: Probleme, die viele Nachrichten mehrere Threads verwenden

zurück zum Anfang

Abrufen von Nachrichten aus dem BadMail-Verzeichnis

Nachdem das CDONTS-Objekt die EML-Datei in das Pickup-Verzeichnis schreibt, übernimmt der SMTP-Dienst. Der SMTP-Dienst verschiebt die Nachricht in das Warteschlangenverzeichnis zur Verarbeitung. Wenn etwas mit der e-Mail-Nachricht nicht stimmt, wird Sie direkt in das BadMail-Verzeichnis. Stimmt etwas nicht mit der SMTP-Dienst, die e-Mail-Nachricht an das BadMail-Verzeichnis geht oder die e-Mail-Nachricht bleibt in der Warteschlange und eine zurückgegebene (.rtr) erstellt.

Wenn die Nachricht direkt an das BadMail-Verzeichnis geht, öffnen Sie die Nachricht mit dem Editor. Stellen Sie sicher, dass Felder X-Sender und Empfänger X gültige e-Mail-Adressen enthalten. Stellen Sie sicher, ein Anzeigenamen im Feld nicht verwendet wird. Ein Anzeigename kann oder funktionieren nicht. Dies hängt von folgendem:
  • Der Dienstanbieter, den Sie verwenden.
  • Die Smarthost-Einstellung, die möglicherweise nicht gültig.
zurück zum Anfang

Abrufen von Nachrichten aus dem Abholverzeichnis

Wenn die Nachricht im Abholverzeichnis bleibt, stellen Sie sicher, dass der SMTP-Dienst ausgeführt wird. Die e-Mail kann im Abholverzeichnis aussetzen, wenn Exchange Internet Mail Service (IMS) auf demselben Computer wie der IIS SMTP-Dienst ausgeführt wird. Sie können entweder den Exchange IMS oder den IIS SMTP-Dienst ausgeführt aber nicht beide.

Wenn die e-Mail im Abholverzeichnis unter C:\Inetpub\Mailroot bleibt Computers Exchange IMS ausgeführt wird, zeigt der IIS-Metabasis an der falschen Stelle. Sie müssen die IIS-Metabasis ändern, sodass die IIS-Metabasis auf C:\Exchsrvr\Imcdata\Pickup verweist. Das Dienstprogramm "Adsutil.vbs" können Sie diese Änderung vornehmen. Finden Sie weitere Informationen zu einem Speicherort auf die folgenden Artikelnummer der Microsoft Knowledge Base:

238956 Fehler 80070003 "Pfad nicht gefunden Fehler"

Überprüfen der SMTP-Dienst ausgeführt wird, gehen Sie folgendermaßen vor:

Klicken Sie auf Startund auf Ausführen, geben
Telnet Localhost 25, und klicken Sie dann auf OK.

Wenn Sie den Rückgabecode 220 erhalten, wird der SMTP-Dienst ausgeführt. Wenn Sie verbunden sind, wird der SMTP-Dienst nicht ausgeführt.

zurück zum Anfang

Abrufen von Nachrichten aus der Warteschlange

Öffnen Sie Wenn die e-Mail im Warteschlangenverzeichnis bleibt und eine .rtr-Datei erstellt wird, die .rtr-Datei mithilfe von Editor. Sie können Sie das Problem anhand der .rtr-Datei in Editor können.

zurück zum Anfang

Resümee

Wenn die Probleme mithilfe dieser Problembehandlungsverfahren nicht gelöst werden möglicherweise an einen Techniker, um sicherzustellen, dass die Probleme durch den IIS SMTP-Dienst auftreten. Bevor Sie dies tun, sollten Sie den SMTP-Dienst manuell zu testen.

Weitere Informationen zum Testen von Windows 2000 IIS SMTP-Dienst finden Sie im folgenden Artikel der Microsoft Knowledge Base:

286421 wie Windows 2000 IIS SMTP-Dienst manuell

Weitere Informationen zum Testen des SMTP-Dienstes für Windows NT 4.0, finden Sie im folgenden Artikel der Microsoft Knowledge Base:

153119 Telnet mit Port 25 zum Testen der SMTP-Kommunikation

zurück zum Anfang
Eigenschaften

Artikelnummer: 324649 – Letzte Überarbeitung: 16.01.2017 – Revision: 2

Feedback