Partager via


Exemple Newsletter

Mis à jour : 17 juillet 2006

L'exemple Newsletter montre comment créer une application simple de gestion d'abonnement Web. Cet exemple possède une architecture multiniveau (n-tier) comportant une couche d'interface HTML et une couche intermédiaire de gestion d'abonnement. Pour vous permettre d'utiliser l'exemple plus facilement, un projet Web Microsoft Visual Studio crée un serveur Web Visual Web Developer lorsque vous l'exécutez. Cet exemple n'est pas pris en charge sur la plateforme IA64.

Scénario

Adventure Works Cycles publie des bulletins d'information orientés client et finance des événements promotionnels. À l'aide de cette application, les clients peuvent s'abonner pour recevoir ces bulletins d'information et des notifications concernant les événements promotionnels.

Un client utilise une page Web pour créer un abonnement à un type d'information (bulletin d'information ou promotion) et sélectionne les modalités de sa transmission (pilotée par les événements ou planifiée).

Chez Adventure Works Cycles, un fichier contenant les données de bulletin d'information et les données d'événement promotionnel est déposé dans un dossier observé. Lorsqu'il démarre, le générateur exécute des règles de chronique d'événements afin de mettre à jour la chronique utilisée pour les abonnements planifiés ; ensuite, il exécute des règles pilotées par les événements sur les lots d'événements non traités, puis il exécute les règles d'abonnement planifiées pour tous les abonnements planifiés à traiter. Lorsqu'elle est exécutée, la règle d'abonnement planifiée met à jour une chronique d'abonnements utilisée pour assurer le suivi de la dernière notification produite par chaque abonnement. Cette information est utilisée pour exclure les notifications en double.

Les notifications sont générées dans les conditions suivantes :

  • Le type de document de l'événement (bulletin d'information ou promotion) correspond au type de document dans l'abonnement.
  • La catégorie du bulletin d'information ou de l'événement correspond à la catégorie définie dans l'abonnement.
  • Si l'abonnement est de type planifié, l'heure planifiée est comprise dans l'intervalle entre la dernière activation de la règle du générateur et son activation actuelle.
  • Si l'abonnement est de type planifié, l'heure à laquelle l'événement a été enregistré dans la base de données est postérieure à l'heure de la dernière notification générée par l'abonnement.

Les notifications résultantes sont formatées avec un module de formatage de contenu XSLT, puis envoyées à l'aide du protocole FTP.

Langages

XML, XSD, XSLT et Microsoft Visual C# ou Microsoft Visual Basic.

Fonctionnalités

L'exemple Newsletter utilise les fonctionnalités suivantes de Microsoft SQL Server Notification Services.

Domaine d'application Fonctionnalités

Classe Event

Classe d'événement de base pour les abonnements pilotés par les événements et chronique d'événements pour les abonnements planifiés.

Classe Subscription

Abonnements pilotés par les événements et abonnements planifiés.

Classe Notification

Remise de type digest.

Fournisseurs d'événements

Fournisseur d'événements FileSystemWatcher.

Modules de formatage de contenu

Module de formatage de contenu XSLT.

Protocoles de remise

Protocoles de remise FTP et SMTP.

Application de gestion d'abonnement

Microsoft ASP.NET avec serveur Web Visual Web Developer.

Configuration requise

Avant d'exécuter cet exemple, vérifiez que le logiciel suivant est installé :

  • Microsoft SQL Server 2005, avec les composants suivants :
    • Moteur de base de données.
    • Notification Services.
    • SQL Server Management Studio.
    • Exemples Notification Services. Ces exemples accompagnent SQL Server 2005. Vous pouvez télécharger la dernière version des exemples sur le site Web du SQL Server Developer Center (Centre des développeurs SQL Server).
  • Microsoft Visual Studio 2005, y compris Visual Web Designer

Génération de l'exemple

Pour générer l'exemple, procédez comme suit :

  • Créez l'instance de Notification Services.
  • Inscrivez l'instance de Notification Services.
  • Octroyez les autorisations pour SQL Server et les bases de données.

Les procédures suivantes montrent comment effectuer chacune de ces tâches pour l'exemple Newsletter.

Étape 1 : Créez l'instance de Notification Services

  1. Ouvrez SQL Server Management Studio et connectez-vous à une instance de SQL Server.

  2. Dans l'Explorateur d'objets, cliquez avec le bouton droit sur le dossier Notification Services, puis sélectionnez Nouvelle instance de Notification Services.

  3. Dans la boîte de dialogue Nouvelle instance de Notification Services, cliquez sur Parcourir et sélectionnez le fichier InstanceConfig.xml dans le dossier racine de l'exemple Newsletter.

  4. Dans la zone Paramètres, entrez les valeurs des trois paramètres :

    • SampleDirectory est le chemin d'accès du dossier racine de l'exemple Newsletter. Il s'agit par défaut de C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Newsletter.
    • NotificationServicesHost est le nom du serveur local.
    • SQLServer est le nom de l'instance de SQL Server.
  5. Activez la case à cocher Activer l'instance après sa création.

  6. Cliquez sur OK.

  7. Lorsque Notification Services a fini de créer l'instance, cliquez sur Fermer.

Étape 2 : Inscrivez l'instance de Notification Services

  1. Dans SQL Server Management Studio, ouvrez le nœud Notification Services, cliquez avec le bouton droit sur NewsletterInstance, pointez sur Tâches, puis sélectionnez Inscrire.

  2. Dans la boîte de dialogue Inscrire l'instance, activez la case à cocher Créer un service Windows. Le service Windows exécute l'instance de Notification Services sur cet ordinateur.

  3. Sous Ouverture de session du service, entrez un compte Windows et son mot de passe. Il s'agit du compte Windows sous lequel le service doit s'exécuter. Si vous utilisez l'authentification Windows pour accéder à SQL Server, le service Windows utilisera aussi ce compte pour se connecter à SQL Server.

  4. Si vous devez utiliser l'authentification SQL Server pour accéder à SQL Server, sélectionnez Authentification SQL Server sous Authentification, puis entrez un nom et un mot de passe de connexion SQL Server.

    Il est recommandé d'utiliser l'authentification Windows.

  5. Cliquez sur OK.

  6. Lorsque Notification Services a fini d'inscrire l'instance, cliquez sur Fermer.

ms160957.note(fr-fr,SQL.90).gifRemarque :
Si vous déployez un exemple Notification Services à l'aide d'un compte de propriétaire de base de données ou d'un compte d'administrateur système, il n'est pas nécessaire d'accorder les autorisations SQL Server sur le compte. L'octroi de ces autorisations risque d'entraîner une erreur, que vous pouvez d'ailleurs ignorer. Lorsque vous déployez vos propres applications, vous devez utiliser des comptes dotés de privilèges réduits afin d'améliorer la sécurité.

Étape 3 : Octroyez les autorisations pour SQL Server, les bases de données et les dossiers

  1. Dans l'Explorateur d'objets, développez le nœud Sécurité.

  2. Si vous devez créer un nouveau compte de connexion SQL Server pour le service Windows, cliquez avec le bouton droit sur Connexions, puis sélectionnez Nouvelle connexion et créez le compte de connexion :

    • Pour utiliser l'authentification Windows, sélectionnez Authentification Windows et entrez le compte Windows que vous avez spécifié pour inscrire l'instance.
    • Si vous devez utiliser l'authentification SQL Server, sélectionnez Authentification SQL Server et entrez le nom et le mot de passe de connexion SQL Server que vous avez spécifiés pour inscrire l'instance.
  3. Si le compte de connexion utilisé par le service Windows a déjà accès à SQL Server, cliquez avec le bouton droit sur ce compte de connexion et sélectionnez Propriétés.

  4. Dans le volet gauche de la boîte de dialogue Connexion, sélectionnez l'option de mappage des utilisateurs.

  5. Octroyez les autorisations pour la base de données NewsletterInstanceNSMain :

    1. Dans la zone réservée aux utilisateurs mappés à cette connexion, sélectionnez NewsletterInstanceNSMain.
    2. Dans la zone Appartenance au rôle de base de données pour : NewsletterInstanceNSMain, sélectionnez NSRunService.
  6. Octroyez les autorisations pour la base de données NewsletterInstanceNewsletter :

    1. Dans la zone réservée aux utilisateurs mappés à cette connexion, sélectionnez NewsletterInstanceNewsletter.
    2. Dans la zone Appartenance au rôle de base de données pour : NewsletterInstanceNewsletter, sélectionnez NSRunService.
  7. Cliquez sur OK pour appliquer les autorisations SQL Server.

  8. À l'aide de l'Explorateur Windows, configurez la sécurité pour le dossier Events :

    1. Naviguez jusqu'au dossier Events de l'exemple Newsletter.
    2. Cliquez avec le bouton droit sur le dossier Events, sélectionnez Partage et sécurité, puis sélectionnez l'onglet Sécurité.
    3. Cliquez sur Ajouter et ajoutez le compte utilisé par le service Windows.
    4. Dans la zone Noms d'utilisateurs ou de groupes, sélectionnez le compte que vous venez d'ajouter.
    5. Dans la zone Autorisations pour, sélectionnez les autorisations Lecture et Modification.
    6. Cliquez sur OK pour appliquer les modifications.
  9. Configurez la sécurité pour le dossier Notifications :

    1. Naviguez jusqu'au dossier Notifications de l'exemple Newsletter.
    2. Cliquez avec le bouton droit sur le dossier Notifications, sélectionnez Partage et sécurité, puis sélectionnez l'onglet Sécurité.
    3. Cliquez sur Ajouter et ajoutez le compte utilisé par le service Windows.
    4. Dans la zone Noms d'utilisateurs ou de groupes, sélectionnez le compte que vous venez d'ajouter.
    5. Dans la zone Autorisations pour, sélectionnez Écriture.
    6. Cliquez sur OK pour appliquer les modifications.

Exécution de l'exemple

Utilisez la procédure suivante pour exécuter l'exemple :

  • Démarrez l'instance.
  • Utilisez une application Web pour ajouter des abonnés et des abonnements.
  • Déposez dans le dossier Events un fichier XML qui contient des événements.

Les procédures suivantes montrent comment effectuer ces tâches et afficher ensuite les notifications résultantes.

Étape 1 : Démarrez l'instance

  1. Dans l'Explorateur d'objets, ouvrez le dossier Notification Services.

  2. Cliquez avec le bouton droit sur NewsletterInstance, puis sélectionnez Démarrer.

Étape 2 : Ajoutez des abonnés et des abonnements

  1. Ouvrez Visual Studio 2005.

  2. Dans le menu Fichier, pointez sur Ouvrir, puis cliquez sur Site Web.

  3. Dans la boîte de dialogue Ouvrir le site Web, naviguez jusqu'au dossier SubscriptionManagementWeb\cs\SubscriptionManagementWeb de l'exemple Newsletter et sélectionnez Ouvrir.

  4. Appuyez sur F5 pour exécuter l'application Web.

    Utilisez la page Web pour ajouter à l'application Newsletter des abonnements pour l'exemple d'utilisateur. Les valeurs d'abonnement par défaut donneront lieu à une notification.

ms160957.note(fr-fr,SQL.90).gifRemarque :
Si vous travaillez dans une application de production ou si vous exécutez votre application avec un compte restreint, ajoutez la connexion SQL Server de l'application au rôle de base de données NSSubscriberAdmin dans les bases de données d'instance et d'application.

Étape 3 : Soumettez des événements

  1. Dans l'Explorateur Windows, naviguez jusqu'au dossier racine de l'exemple Newsletter, puis copiez le fichier EventData.xml vers le sous-dossier Events.

    Lorsque vous déposez le fichier, le fournisseur d'événements FileSystemWatcher lit les données du fichier, les soumet à l'application, puis affecte au fichier l'extension .done.

    Si une erreur se produit lors de la lecture ou de la soumission des données, le fournisseur d'événements affecte au fichier l'extension .err. Pour plus d'informations sur l'erreur, consultez l'Observateur d'événements Windows.

Étape 4 : Affichez les notifications

  1. Laissez à Notification Services environ une minute pour produire les notifications.

  2. À l'aide de l'Explorateur Windows, naviguez jusqu'au dossier Notifications de l'exemple Newsletter. Vous devez y trouver un fichier nommé FileNotifications.txt. Ce fichier contient les notifications.

  3. Naviguez jusqu'au dossier où sont déposés les messages électroniques. Il s'agit généralement de l'un des dossiers de C:\Inetpub\mailroot. Selon l'état du serveur SMTP, les notifications doivent se trouver dans le dossier Pickup ou le dossier Queue. Si le service SMTP s'exécute, les messages peuvent avoir été déplacés vers le dossier Badmail.

Suppression de l'exemple

Utilisez la procédure suivante pour supprimer l'exemple Newsletter.

Pour supprimer l'exemple Newsletter

  1. Dans l'Explorateur d'objets, ouvrez le dossier Notification Services.

  2. Cliquez avec le bouton droit sur NewsletterInstance, puis sélectionnez Arrêter.

  3. Cliquez avec le bouton droit sur NewsletterInstance, pointez sur Tâches, puis sélectionnez Annuler l'inscription.

  4. Cliquez avec le bouton droit sur NewsletterInstance, pointez sur Tâches, puis sélectionnez Supprimer.

Voir aussi

Autres ressources

Exemples SQL Server Notification Services
Sécurisation de Notification Services

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

17 juillet 2006

Contenu mis à jour
  • Ajout de Visual Web Designer comme élément préalable requis pour l'exécution de cet exemple.

14 avril 2006

Contenu modifié :
  • Ajout d'une remarque sur l'exécution des exemples à l'aide des autorisations de propriétaire de base de données.