Newsletter-Beispiel

Aktualisiert: 17. Juli 2006

Das Newsletter-Beispiel zeigt, wie Sie eine einfache webbasierte Abonnementverwaltungsanwendung erstellen können. Das Beispiel weist ein N-Tier-Design auf, das eine HTML-basierte Schnittstellenschicht und eine Middle-Tier-Schicht für die Abonnementverwaltung enthält. Ein Microsoft Visual Studio-Webprojekt erstellt beim Ausführen des Webprojekts einen Visual Web Developer-Webserver, um Ihnen das Verwenden des Beispiels zu erleichtern. Dieses Beispiel wird nicht auf IA64-basierten Systemen unterstützt.

Szenario

Adventure Works Cycles veröffentlicht kundenorientierte Newsletter und sponsert Werbeveranstaltungen (Promotions). Mithilfe dieser Anwendung können Kunden diese Newsletter und Benachrichtigungen über Werbeveranstaltungen abonnieren.

Auf einer Webseite erstellt ein Kunde ein Abonnement für einen Informationstyp (Newsletter oder Promotion) und wählt aus, wann (ereignisgesteuert oder geplant) die Informationen übermittelt werden sollen.

Bei Adventure Works Cycles wird eine Datei, die Daten zu Newslettern und Werbeveranstaltungen enthält, in einem überwachten Ordner abgelegt. Wenn der Generator ausgeführt wird, startet er zunächst Ereignisverlaufsregeln für geplante Abonnements, führt anschließend die ereignisgesteuerten Regeln für unverarbeitete Ereignisbatches aus und führt dann die geplanten Abonnementregeln für alle geplanten Abonnements aus, deren Verarbeitung fällig ist. Bei ihrer Ausführung aktualisiert die geplante Abonnementregel einen Abonnementverlauf, mit dessen Hilfe nachverfolgt wird, wann die einzelnen Abonnements zuletzt eine Benachrichtigung ausgelöst haben. Diese Informationen dienen zur Vermeidung doppelt versendeter Benachrichtigungen.

Benachrichtigungen werden generiert, wenn eine der folgenden Bedingungen erfüllt ist:

  • Der Dokumenttyp des Ereignisses (Newsletter oder Promotion) stimmt mit dem Dokumenttyp im Abonnement überein.
  • Die Kategorie des Newsletters oder Ereignisses stimmt mit der Kategorie im Abonnement überein.
  • Bei geplanten Abonnements: Die geplante Uhrzeit lag im Zeitraum zwischen dem letzten Auslösen der Generatorregel und dem aktuellen Auslösen der Generatorregel.
  • Bei geplanten Abonnements: Die Zeit, zu der ein Commit für das Ereignis an die Datenbank ausgeführt wurde, liegt nach der Zeit, zu der das Abonnement zuletzt eine Benachrichtigung generiert hat.

Die resultierenden Benachrichtigungen werden mit einem XSLT-Inhaltsformatierer formatiert und dann mithilfe des Dateiübermittlungsprotokolls versendet.

Sprachen

XML, XSD, XSLT und Microsoft Visual C# oder Microsoft Visual Basic

Features

Das Newsletter-Beispiel setzt die folgenden Features von Microsoft SQL Server Notification Services ein

Anwendungsbereich Features

Ereignisklasse

Eine einfache Ereignisklasse für ereignisgesteuerte Abonnements und ein Ereignisverlauf für geplante Abonnements

Abonnementklasse

Ereignisgesteuerte und geplante Abonnements

Benachrichtigungsklasse

Digestübermittlung

Ereignisanbieter

FileSystemWatcher-Ereignisanbieter

Inhaltsformatierer

XSLT-Inhaltsformatierer

Übermittlungsprotokolle

Datei- und SMTP-Übermittlungsprotokolle

Abonnementverwaltungsanwendung

Microsoft ASP.NET mit Visual Web Developer-Webserver

Voraussetzungen

Stellen Sie vor dem Ausführen des Beispiels sicher, dass die folgende Software installiert ist:

  • Microsoft SQL Server 2005, einschließlich der folgenden Komponenten:
    • Database Engine (Datenbankmodul).
    • Notification Services
    • SQL Server Management Studio.
    • Notification Services-Beispiele. Diese Beispiele sind in SQL Server 2005 enthalten. Sie können die aktuelle Version der Beispiele von der SQL Server Developer-Website downloaden.
  • Microsoft Visual Studio 2005, einschließlich Visual Web Designer

Erstellen des Beispiels

Zum Erstellen des Beispiels müssen Sie die folgenden Schritte durchführen:

  • Erstellen Sie die Instanz von Notification Services.
  • Registrieren Sie die Instanz von Notification Services.
  • Erteilen Sie SQL Server- und Datenbankberechtigungen.

In den folgenden Verfahren wird gezeigt, wie jede dieser Aufgaben für das Newsletter-Beispiel durchzuführen ist.

Schritt 1: Erstellen der Instanz von Notification Services

  1. Öffnen Sie SQL Server Management Studio, und stellen Sie eine Verbindung zu einer Instanz von SQL Server her.

  2. Klicken Sie im Objekt-Explorer mit der rechten Maustaste auf den Ordner Notification Services, und wählen Sie Neue Notification Services-Instanz aus.

  3. Klicken Sie im Dialogfeld Neue Notification Services-Instanz auf Durchsuchen, und wählen Sie die Datei InstanceConfig.xml im Stammordner des Newsletter-Beispiels aus.

  4. Geben Sie im Feld Parameter Werte für die drei Parameter ein:

    • SampleDirectory ist der Pfad zum Stammordner des Newsletter-Beispiels. Der Standardpfad lautet C:\Programme\Microsoft SQL Server\90\Samples\Notification Services\Newsletter.
    • NotificationServicesHost ist der Name des lokalen Servers.
    • SQLServer ist der Name der SQL Server-Instanz.
  5. Aktivieren Sie das Kontrollkästchen Instanz nach dem Erstellen aktivieren.

  6. Klicken Sie auf OK.

  7. Wenn Notification Services das Erstellen der Instanz abgeschlossen hat, klicken Sie auf Schließen.

Schritt 2: Registrieren der Instanz von Notification Services

  1. Öffnen Sie in SQL Server Management Studio den Notification Services-Knoten, klicken Sie mit der rechten Maustaste auf NewsletterInstance, zeigen Sie auf Tasks, und klicken Sie dann auf Registrieren.

  2. Aktivieren Sie im Dialogfeld Registrieren das Kontrollkästchen Windows-Dienst erstellen. Der Windows-Dienst führt die Instanz von Notification Services auf diesem Computer aus.

  3. Geben Sie unter Dienstkonto ein Windows-Konto und -Kennwort ein. Dies ist das Windows-Konto, unter dem der Dienst ausgeführt wird. Falls Sie mithilfe der Windows-Authentifizierung auf SQL Server zugreifen, verwendet der Windows-Dienst dieses Konto auch zum Herstellen der Verbindung zu SQL Server.

  4. Falls Sie für den Zugriff auf SQL Server die SQL Server-Authentifizierung verwenden müssen, wählen Sie SQL Server-Authentifizierung unter Authentifizierung aus, und geben Sie einen SQL Server-Anmeldenamen und ein Kennwort ein.

    Es wird empfohlen, die Windows-Authentifizierung zu verwenden.

  5. Klicken Sie auf OK.

  6. Wenn Notification Services die Registrierung der Instanz abgeschlossen hat, klicken Sie auf Schließen.

ms160957.note(de-de,SQL.90).gifHinweis:
Wenn Sie ein Notification Services-Beispiel mithilfe eines Kontos bereitstellen, das der Datenbankbesitzer oder ein Systemadministrator ist, müssen Sie dem Konto keine SQL Server-Berechtigungen erteilen. Das Erteilen dieser Berechtigungen kann zu einem Fehler führen, den Sie ignorieren können. Wenn Sie Ihre eigenen Anwendungen bereitstellen, sollten Sie Konten mit niedrigeren Privilegien verwenden, um die Sicherheit zu verbessern.

Schritt 3: Erteilen der SQL Server-, Datenbank- und Ordnerberechtigungen

  1. Erweitern Sie im Objekt-Explorer den Knoten Sicherheit.

  2. Falls Sie ein neues Datenbankanmeldekonto für den Windows-Dienst erstellen müssen, klicken Sie mit der rechten Maustaste auf Anmeldungen, und wählen Sie Neue Anmeldung aus, um das Anmeldekonto zu erstellen:

    • Um die Windows-Authentifizierung zu verwenden, wählen Sie Windows-Authentifizierung aus, und geben Sie dasselbe Windows-Konto ein, das Sie auch beim Registrieren der Instanz angegeben haben.
    • Falls Sie die SQL Server-Authentifizierung verwenden müssen, wählen Sie SQL Server-Authentifizierung aus, und geben Sie denselben SQL Server-Anmeldenamen und dasselbe Kennwort ein, die Sie auch beim Registrieren der Instanz angegeben haben.
  3. Falls der vom Windows-Dienst verwendete Anmeldename bereits über Zugriff auf SQL Server verfügt, klicken Sie mit der rechten Maustaste auf den Anmeldenamen, und wählen Sie Eigenschaften aus.

  4. Wählen Sie im linken Bereich des Dialogfeldes Anmeldung die Option Benutzerzuordnung aus.

  5. Erteilen Sie Berechtigungen für die NewsletterInstanceNSMain-Datenbank:

    1. Wählen Sie NewsletterInstanceNSMain im Feld Benutzer, die dieser Anmeldung zugeordnet sind aus.
    2. Wählen Sie NSRunService im Feld Mitgliedschaft in Datenbankrolle für: NewsletterInstanceNSMain aus.
  6. Erteilen Sie Berechtigungen für die NewsletterInstanceNewsletter-Datenbank:

    1. Wählen Sie NewsletterInstanceNewsletter im Feld Benutzer, die dieser Anmeldung zugeordnet sind aus.
    2. Wählen Sie NSRunService im Feld Mitgliedschaft in Datenbankrolle für: NewsletterInstanceNewsletter aus.
  7. Klicken Sie auf OK, um die SQL Server-Berechtigungen anzuwenden.

  8. Konfigurieren Sie den Ordner Events mithilfe vom Windows-Explorer:

    1. Navigieren Sie zum Ordner Events des Newsletter-Beispiels.
    2. Klicken Sie mit der rechten Maustaste auf den Ordner Events, wählen Sie Freigabe und Sicherheit aus, und wählen Sie dann die Registerkarte Sicherheit aus.
    3. Klicken Sie auf Hinzufügen, und fügen Sie das vom Windows-Dienst verwendete Konto hinzu.
    4. Wählen Sie im Feld Gruppen- oder Benutzernamen das soeben hinzugefügte Konto aus.
    5. Wählen Sie im Feld Berechtigungen für die Berechtigungen Lesen und Ändern aus.
    6. Klicken Sie auf OK, um die Änderungen anzuwenden.
  9. Konfigurieren Sie die Sicherheit für den Ordner Notifications:

    1. Navigieren Sie zum Ordner Notifications des Newsletter-Beispiels.
    2. Klicken Sie mit der rechten Maustaste auf den Ordner Notifications, wählen Sie Freigabe und Sicherheit aus, und wählen Sie dann die Registerkarte Sicherheit aus.
    3. Klicken Sie auf Hinzufügen, und fügen Sie das vom Windows-Dienst verwendete Konto hinzu.
    4. Wählen Sie im Feld Gruppen- oder Benutzernamen das soeben hinzugefügte Konto aus.
    5. Wählen Sie im Feld Berechtigungen für die Berechtigung Schreiben aus.
    6. Klicken Sie auf OK, um die Änderungen anzuwenden.

Ausführen des Beispiels

Zum Ausführen des Beispiels müssen Sie die folgenden Schritte durchführen:

  • Starten Sie die Instanz.
  • Fügen Sie mithilfe einer Webanwendung Abonnenten und Abonnements hinzu.
  • Legen Sie eine XML-Datei mit Ereignissen ab.

In den folgenden Verfahren wird gezeigt, wie Sie diese Aufgaben durchführen und anschließend die resultierenden Benachrichtigungen anzeigen können.

Schritt 1: Starten der Instanz

  1. Öffnen Sie im Objekt-Explorer den Ordner Notification Services.

  2. Klicken Sie mit der rechten Maustaste auf NewsletterInstance, und wählen Sie Starten aus.

Schritt 2: Hinzufügen der Abonnenten und Abonnements

  1. Öffnen Sie Microsoft Visual Studio 2005.

  2. Zeigen Sie im Menü Datei auf Öffnen, und klicken Sie dann auf Website.

  3. Navigieren Sie im Dialogfeld Website öffnen zum Ordner SubscriptionManagementWeb\cs\SubscriptionManagementWeb des Newsletter-Beispiels, und wählen Sie Öffnen aus.

  4. Drücken Sie die Taste F5, um die Webanwendung auszuführen.

    Verwenden Sie die Webseite, um der Newsletter-Anwendung Abonnements für den Beispielbenutzer hinzuzufügen. Die standardmäßigen Abonnementwerte führen zu einer Benachrichtigung.

ms160957.note(de-de,SQL.90).gifHinweis:
Für Produktionsanwendungen, oder wenn Sie diese Anwendung unter einem eingeschränkten Konto ausführen, müssen Sie der NSSubscriberAdmin-Datenbankrolle in der Instanz- und der Anwendungsdatenbank die SQL Server-Anmeldung der Anwendung hinzufügen.

Schritt 3: Senden der Ereignisse

  1. Navigieren Sie im Windows-Explorer zum Stammordner des Newsletter-Beispiels, und kopieren Sie die Datei EventData.xml in den Unterordner Events.

    Sobald Sie die Datei ablegen, liest der FileSystemWatcher-Ereignisanbieter die darin enthaltenen Daten aus, sendet sie an die Anwendung und ändert anschließend die Dateierweiterung in .done.

    Tritt während des Lesens oder Sendens der Daten ein Fehler auf, ändert der Ereignisanbieter die Dateierweiterung in .err. Weitere Einzelheiten zu dem gemeldeten Fehler sind in der Windows-Ereignisanzeige zu finden.

Schritt 4: Anzeigen der Benachrichtigungen

  1. Lassen Sie Notification Services ungefähr eine Minute Zeit, um die Benachrichtigungen zu generieren.

  2. Navigieren Sie im Windows-Explorer zum Ordner Notifications des Newsletter-Beispiels. Dort sollten Sie eine Datei mit dem Namen FileNotifications.txt finden, in der die Benachrichtigungen enthalten sind.

  3. Navigieren Sie zu dem Ordner, in dem E-Mail-Nachrichten abgelegt werden. Dieser befindet sich in der Regel in einem der Ordner unter C:\Inetpub\mailroot. Je nach SMTP-Serverstatus befinden sich die Benachrichtigungen entweder im Abholordner oder im Warteschlangenordner. Wenn der SMTP-Dienst ausgeführt wird, werden die Nachrichten in den Ordner Badmail verschoben.

Entfernen des Beispiels

Mithilfe des folgenden Verfahrens können Sie das Newsletter-Beispiel entfernen.

So entfernen Sie das Newsletter-Beispiel

  1. Öffnen Sie im Objekt-Explorer den Ordner Notification Services.

  2. Klicken Sie mit der rechten Maustaste auf NewsletterInstance, und wählen Sie Beenden aus.

  3. Klicken Sie mit der rechten Maustaste auf NewsletterInstance, zeigen Sie auf Tasks, und klicken Sie dann auf Registrierung aufheben.

  4. Klicken Sie mit der rechten Maustaste auf NewsletterInstance, zeigen Sie auf Tasks, und klicken Sie dann auf Löschen.

Siehe auch

Andere Ressourcen

Beispiele für SQL Server Notification Services
Sichern von Notification Services

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

17. Juli 2006

Geänderter Inhalt:
  • Visual Web Designer wurde als Voraussetzung für die Ausführung dieses Beispiels hinzugefügt.

14. April 2006

Geänderter Inhalt:
  • Ein Hinweis zum Ausführen von Beispielen mithilfe von Datenbankbesitzer-Berechtigungen wurde hinzugefügt.