Flight-Beispiel

Aktualisiert: 17. Juli 2006

Das Flight-Beispiel ist eine ereignisgesteuerte Microsoft SQL Server 2005 Notification Services-Anwendung, die für abonnierte Benutzer ihren Abonnements entsprechend Benachrichtigungen zu Flugpreisen erzeugt.

Szenario

Reisekunden abonnieren Benachrichtigungen zu Flugpreisen. In jedem Abonnement geben Sie einen Abflugs- und einen Ankunftsort, einen Zielpreis und wahlweise eine Fluggesellschaft an.

Die Betreiberfirma der Flight-Anwendung übermittelt Flugpreisereignisdaten an die Anwendung durch Ablegen der XML-Daten in einen beobachteten Ordner. Die Daten werden von Notification Services abgeholt, und es werden Benachrichtigungen für Abonnenten mit den entsprechenden Abonnements generiert.

Benachrichtigungen werden generiert, wenn die folgenden Bedingungen erfüllt sind:

  • Der Ticketpreis des Ereignisses ist kleiner als der Ticketpreis des Abonnements.
  • Der Abflugsort des Ereignisses ist gleich dem Abflugsort des Abonnements.
  • Der Ankunftsort des Ereignisses ist gleich dem Ankunftsort des Abonnements.
  • Die Fluggesellschaft des Ereignisses ist gleich der Fluggesellschaft des Abonnements (falls angegeben).

Wenn für einen Abonnenten mehrere Benachrichtigungen gleichzeitig gesendet werden müssen, werden diese Benachrichtigungen von Notification Services mithilfe der Digestübermittlung kombiniert. Die Benachrichtigungen werden dann in Notification Services mithilfe eines XSLT-Inhaltsformatierers formatiert und über den angegebenen Übermittlungskanal (E-Mail oder Datei) verteilt.

Sprachen

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

Features

Im Flight-Beispiel werden die folgenden Features von Notification Services verwendet:

Anwendungsbereich Features

Ereignisklasse

Einfache Ereigniswarteschlange (kein Verlauf)

Abonnementklasse

Ereignisgesteuerte Abonnements

Benachrichtigungsklasse

Digestübermittlung

Ereignisanbieter

FileSystemWatcher-Ereignisanbieter

Inhaltsformatierer

XSLT-Inhaltsformatierer

Übermittlungsprotokolle

Datei- und SMTP-Übermittlungsprotokolle

Voraussetzungen

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

  • SQL Server 2005, einschließlich der folgenden Komponenten:
    • 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.
    • .NET Framework SDK 2.0 oder Microsoft Visual Studio 2005. Das .NET Framework SDK ist kostenlos erhältlich. Siehe Installieren des .NET Framework SDK.

Stellen Sie außerdem sicher, dass die folgenden Microsoft Windows-Komponenten installiert und betriebsfähig sind:

  • SMPT-Dienst (Simple Mail Transfer Protocol), eine IIS-Komponente (Internet Information Services). Unter Microsoft Windows Server 2003 wird SMTP nicht standardmäßig mit IIS installiert. Anleitungen zur Installation und Verwendung des SMPT-Dienstes finden Sie in Ihrer Windows-Dokumentation.

Erstellen der Notification Services-Instanz

Zum Erstellen der Instanz müssen Sie die folgenden Schritte durchführen:

  • Erstellen der Instanz von Notification Services
  • Registrieren der Instanz von Notification Services
  • Erteilen von SQL Server-, Datenbank- und Ordnerberechtigungen

In den folgenden Verfahren wird gezeigt, wie jede dieser Aufgaben für das Flight-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 Flight-Beispiels aus.

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

    • SampleDirectory: der Pfad zum Stammordner des Flight-Beispiels. Der Standardpfad lautet C:\Programme\Microsoft SQL Server\90\Samples\Notification Services\Flight.
    • NotificationServicesHost: der Name des Notification Services-Servers
    • SQLServer: 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 FlightInstance, zeigen Sie auf Tasks, und wählen Sie dann Registrieren aus.

  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 Dienstanmeldung ein Windows-Anmeldekonto 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 das Registrieren der Instanz abgeschlossen hat, klicken Sie auf Schließen.

ms160946.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 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 denselben SQL Server-Anmeldenamen und dasselbe Kennwort ein, den/das 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 Eigenschaften aus.

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

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

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

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

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

    1. Suchen Sie den Ordner Events des 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. Suchen Sie den Ordner Notifications des 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.

Generieren einer Schlüsseldatei mit starkem Namen

Generieren Sie die Schlüsseldatei mithilfe der folgenden Anweisungen, falls Sie noch keine Schlüsseldatei mit starkem Namen erstellt haben.

So generieren Sie eine Schlüsseldatei mit starkem Namen

  1. Öffnen Sie eine Microsoft Visual Studio 2005-Eingabeaufforderung. Klicken Sie auf Start, zeigen Sie auf Alle Programme und danach auf Microsoft .NET Framework SDK 2.0, und klicken Sie anschließend auf SDK-Eingabeaufforderung.

    – oder –

    Öffnen Sie eine Microsoft .NET Framework-Eingabeaufforderung. Klicken Sie auf Start, zeigen Sie auf Alle Programme und dann auf Microsoft .NET Framework SDK 2.0, und klicken Sie anschließend auf SDK-Eingabeaufforderung.

  2. Wechseln Sie an der Eingabeaufforderung mit dem Befehl CD (Verzeichnis wechseln) im Eingabeaufforderungsfenster vom aktuellen Verzeichnis zu dem Ordner, in dem die Beispiele installiert sind.

    ms160946.note(de-de,SQL.90).gifHinweis:
    Klicken Sie auf Start, zeigen Sie auf Alle Programme, Microsoft SQL Server und auf Dokumentation und Lernprogramme, und klicken Sie dann auf Beispielordner, um den Ordner zu ermitteln, in dem sich die Beispiele befinden. Wenn das Standardverzeichnis verwendet wurde, befinden sich die Beispiele im Verzeichnis <Systemlaufwerk>:\Programme\Microsoft SQL Server\100\Samples.
  3. Führen Sie an der Eingabeaufforderung den folgenden Befehl zum Generieren der Schlüsseldatei aus:

    sn -k SampleKey.snk

    ms160946.note(de-de,SQL.90).gifWichtig:
    Weitere Informationen zum Schlüsselpaar mit starkem Namen finden Sie unter "Security Briefs: Starke Namen und Sicherheit im .NET Framework" unter ".NET-Entwicklung" auf der MSDN-Website.

Ausführen des Beispiels

Zum Ausführen des Beispiels sind folgende Schritte erforderlich:

  • Starten der Instanz
  • Hinzufügen von Abonnenten und Abonnements
  • Ablegen einer XML-Datei, die Ereignisse enthält
  • Anzeigen der resultierenden Benachrichtigungen

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 FlightInstance, und wählen Sie dann Starten aus.

Schritt 2: Hinzufügen von Abonnenten und Abonnements

  1. Erstellen der Flight- oder Flight_VB-Visual Studio-Projektmappe

    Wenn Sie mit dem Microsoft .NET Framework SDK arbeiten, führen Sie die folgenden Schritte aus:

    1. Klicken Sie auf Start, zeigen Sie auf Alle Programme und dann auf Microsoft .NET Framework SDK v2.0, und klicken Sie dann auf SDK-Eingabeaufforderung.
    2. Suchen Sie den Stammordner des Flight-Beispiels. Geben Sie den folgenden Befehl für den Standardspeicherort ein:
      cd \Programme\Microsoft SQL Server\90\Samples\Notification Services\Flight
    3. Geben Sie Folgendes ein, um die Visual Studio-Projektmappe zu erstellen:
      [C#]
      msbuild Flight.sln
      [Visual Basic]
      msbuild Flight_VB.sln

    Oder führen Sie die folgenden Schritte aus, falls Sie Visual Studio 2005 verwenden:

    1. Öffnen Sie die gewünschte Projektmappendatei (Flight.sln oder Flight_VB.sln).
    2. Erstellen Sie die Projektmappe.
  2. Führen Sie AddSubscribers.exe aus.

    Der Standardspeicherort für diese Datei ist C:\Programme\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscribers\language\AddSubscribers\bin\Debug.

  3. Führen Sie AddSubscriptions.exe aus.

    C:\Programme\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscriptions\language\AddSubscriptions\bin\Debug

ms160946.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: Ereignisse senden

  1. Navigieren Sie im Windows-Explorer zum Stammordner des Flight-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 Flight-Beispiels. Dort sollten Sie eine Datei mit dem Namen FileNotifications.txt finden, in der die dateibasierten 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 der folgenden Schritte können Sie das Flight-Beispiel entfernen.

So entfernen Sie das Flight-Beispiel

  1. Öffnen Sie im Objekt-Explorer von SQL Server Management Studio den Ordner Notification Services.

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

  3. Klicken Sie mit der rechten Maustaste auf FlightInstance, zeigen Sie auf Tasks, und wählen Sie dann Registrierung aufheben aus.

  4. Klicken Sie mit der rechten Maustaste auf FlightInstance, zeigen Sie auf Tasks, und wählen Sie dann Löschen aus.

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

14. April 2006

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

05. Dezember 2005

Geänderter Inhalt:
  • Die Anweisungen zum Generieren einer Schlüsseldatei wurden geändert, einschließlich des Namens und Speicherortes der Schlüsseldatei.