Esempio di newsletter
Data aggiornamento: 17 luglio 2006
L'esempio Newsletter illustra come creare un'applicazione Web semplice per la gestione di sottoscrizioni. L'esempio ha una struttura a più livelli che include un livello di interfaccia HTML e un livello intermedio di gestione delle sottoscrizioni. Quando si esegue il progetto Web, un progetto Web di Microsoft Visual Studio crea a un server Web di Visual Web Developer. In questo modo risulta più semplice utilizzare l'esempio. Questo esempio non è supportato in IA64.
Scenario
Adventure Works Cycles pubblica newsletter dedicate ai clienti e sponsorizza eventi promozionali. Mediante questa applicazione i clienti possono sottoscrivere newsletter e notifiche relative agli eventi promozionali.
Il cliente crea una sottoscrizione per un determinato tipo di informazione (newsletter o evento promozionale) in una pagina Web e sceglie il metodo di recapito (guidato dagli eventi o pianificato).
Presso Adventure Works Cycles un file contenente i dati relativi a newsletter ed eventi promozionali viene copiato in una cartella monitorata. Quando viene eseguito il generatore, vengono eseguite le regole di cronologia degli eventi per aggiornare la cronologia utilizzata per le sottoscrizioni pianificate, quindi vengono eseguite le regole guidate dagli eventi in batch di eventi non ancora elaborati, e infine vengono eseguite le regole di sottoscrizioni pianificate per tutte le sottoscrizioni pianificate che devono essere elaborate. Quando viene eseguita la regola di sottoscrizione pianificata, viene aggiornata la cronologia delle sottoscrizioni utilizzata per tenere traccia dell'ultima generazione di una notifica da parte delle sottoscrizioni. Questa informazione consente di evitare la duplicazione di notifiche.
Le notifiche vengono generate alle condizioni seguenti:
- Il tipo di documento dell'evento (newsletter o evento promozionale) corrisponde a quello nella sottoscrizione.
- La categoria della newsletter o dell'evento corrisponde a quella nella sottoscrizione.
- Se si tratta di una sottoscrizione pianificata, l'ora pianificata si è verificata nell'intervallo di tempo tra l'ultima attivazione della regola da parte del generatore e l'attivazione corrente della regola.
- Se si tratta di una sottoscrizione pianificata, l'ora in cui è stato eseguito il commit dell'evento nel database è posteriore all'ora dell'ultima generazione di una notifica da parte della sottoscrizione.
Le notifiche risultanti vengono formattate tramite un formattatore del contenuto XSLT e quindi inviate tramite il protocollo di recapito File.
Linguaggi
XML, XSD, XSLT e Microsoft Visual C# o Microsoft Visual Basic.
Funzionalità
L'esempio Newsletter utilizza le funzionalità seguenti di Microsoft SQL Server Notification Services.
Area di applicazione | Funzionalità |
---|---|
Classe di evento |
Una classe di evento di base per le sottoscrizioni guidate dagli eventi e una cronologia eventi per le sottoscrizioni pianificate. |
Classe di sottoscrizione |
Sottoscrizioni pianificate e guidate dagli eventi. |
Classe di notifica |
Recapito digest. |
Provider di eventi |
Provider di eventi di monitoraggio del file system. |
Formattatori del contenuto |
Formattatore del contenuto XSLT. |
Protocolli di recapito |
Protocolli di recapito File e SMTP. |
Applicazione per la gestione di sottoscrizioni |
Microsoft ASP.NET con un server Web di Visual Web Developer. |
Prerequisiti
Prima di eseguire questo esempio, verificare che siano installati i prodotti software seguenti:
- Microsoft SQL Server 2005, con i componenti seguenti:
- Motore di database.
- Notification Services
- SQL Server Management Studio.
- Esempi di Notification Services, inclusi in SQL Server 2005. È possibile scaricare la versione più recente degli esempi dal sito Web per gli sviluppatori di SQL Server.
- Microsoft Visual Studio 2005 con finestra di progettazione Web visiva
Generazione dell'esempio
Per generare l'esempio, è necessario eseguire le operazioni seguenti:
- Creare l'istanza di Notification Services.
- Registrare l'istanza di Notification Services.
- Concedere le autorizzazioni per SQL Server e per il database.
Di seguito è illustrato come eseguire queste operazioni per l'esempio Newsletter.
Passaggio 1: creazione dell'istanza di Notification Services
Aprire SQL Server Management Studio e connettersi a un'istanza di SQL Server.
In Esplora oggetti fare clic con il pulsante destro del mouse sulla cartella Notification Services e scegliere Nuova istanza di Notification Services.
Nella finestra di dialogo Nuova istanza di Notification Services fare clic su Sfoglia e selezionare il file InstanceConfig.xml nella cartella principale dell'esempio Newsletter.
In Parametri specificare i valori per i tre parametri:
- SampleDirectory è il percorso della cartella principale dell'esempio Newsletter. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\Newsletter.
- NotificationServicesHost è il nome del server locale.
- SQLServer è il nome dell'istanza di SQL Server.
Selezionare la casella di controllo Attiva istanza dopo la creazione.
Fare clic su OK.
Al termine della creazione dell'istanza, fare clic su Chiudi.
Passaggio 2: registrazione dell'istanza di Notification Services
In SQL Server Management Studio espandere il nodo Notification Services, fare clic con il pulsante destro del mouse su NewsletterInstance, scegliere Attività e quindi Registra.
Nella finestra di dialogo Registra istanza selezionare la casella di controllo Crea servizio Windows. Il servizio Windows esegue l'istanza di Notification Services sul computer in uso.
In Accesso al servizio immettere l'account e la password di Windows. Si tratta dell'account di Windows in cui viene eseguito il servizio. Se si utilizza l'autenticazione di Windows per accedere a SQL Server, il servizio Windows utilizza questo account per connettersi a SQL Server.
Se è necessario utilizzare l'autenticazione di SQL Server per accedere a SQL Server, in Autenticazione selezionare Autenticazione di SQL Server e quindi specificare il nome dell'account di accesso e la password di SQL Server.
È consigliabile utilizzare l'autenticazione di Windows.
Fare clic su OK.
Al termine della registrazione dell'istanza, fare clic su Chiudi.
[!NOTA] Se si distribuisce un esempio di Notification Services utilizzando l'account del proprietario del database o di un amministratore del sistema, non sarà necessario concedere autorizzazioni per SQL Server a tale account. Se si concedono tali autorizzazioni verrà visualizzato un errore, che può essere ignorato. Quando si distribuiscono applicazioni personalizzate, per migliorare la protezione è consigliabile utilizzare account con privilegi inferiori.
Passaggio 3: concessione delle autorizzazioni per SQL Server, per il database e per la cartella
In Esplora oggetti espandere il nodo Protezione.
Se è necessario creare un nuovo account di accesso al database per il servizio Windows, fare clic con il pulsante destro del mouse su Account di accesso, scegliere Nuovo account di accesso e creare l'account:
- Per utilizzare l'autenticazione di Windows, selezionare Autenticazione di Windows e immettere lo stesso account di Windows specificato durante la registrazione dell'istanza.
- Se è necessario utilizzare l'autenticazione di SQL Server, selezionare Autenticazione di SQL Server e quindi immettere lo stesso account di accesso e la stessa password di SQL Server specificati durante la registrazione dell'istanza.
Se l'account di accesso utilizzato dal servizio Windows dispone già dell'accesso a SQL Server, fare clic con il pulsante destro del mouse e scegliere Proprietà.
Nel riquadro sinistro della finestra di dialogo Proprietà account di accesso selezionare Mapping utenti.
Concedere le autorizzazioni per il database NewsletterInstanceNSMain:
- In Utenti mappati all'account di accesso seguente selezionare NewsletterInstanceNSMain.
- In Appartenenza a ruoli del database per: NewsletterInstanceNSMain selezionare NSRunService.
Concedere le autorizzazioni per il database NewsletterInstanceNewsletter:
- In Utenti mappati all'account di accesso seguente selezionare NewsletterInstanceNewsletter.
- In Appartenenza a ruoli del database per: NewsletterInstanceNewsletter selezionare NSRunService.
Fare clic su OK per concedere le autorizzazioni per SQL Server.
In Esplora risorse configurare la protezione per la cartella Events:
- Passare alla cartella Events dell'esempio Newsletter.
- Fare clic con il pulsante destro del mouse sulla cartella Events, scegliere Condivisione e protezione e quindi selezionare la scheda Protezione.
- Fare clic su Aggiungi e aggiungere l'account utilizzato dal servizio Windows.
- In Utenti e gruppi selezionare l'account aggiunto.
- In Autorizzazioni per selezionare le autorizzazioni Lettura e Modifica.
- Fare clic su OK per rendere effettive le modifiche.
Configurare la protezione per la cartella Notifications:
- Passare alla cartella Notifications dell'esempio Newsletter.
- Fare clic con il pulsante destro del mouse sulla cartella Notifications, scegliere Condivisione e protezione e quindi selezionare la scheda Protezione.
- Fare clic su Aggiungi e aggiungere l'account utilizzato dal servizio Windows.
- In Utenti e gruppi selezionare l'account aggiunto.
- In Autorizzazioni per selezionare Scrittura.
- Fare clic su OK per rendere effettive le modifiche.
Esecuzione dell'esempio
Per eseguire l'esempio, procedere come segue:
- Avviare l'istanza.
- Aggiungere sottoscrittori e sottoscrizioni mediante un'applicazione Web.
- Copiare un file XML che contiene eventi.
Di seguito è illustrato come eseguire queste operazioni e quindi visualizzare le notifiche risultanti.
Passaggio 1: avvio dell'istanza
In Esplora oggetti aprire la cartella Notification Services.
Fare clic con il pulsante destro del mouse su NewsletterInstance e scegliere Avvia.
Passaggio 2: aggiunta di sottoscrittori e sottoscrizioni
Eseguire Visual Studio 2005.
Scegliere Apri dal menu File e quindi Web Site.
Nella finestra di dialogo Open Web Site passare alla cartella SubscriptionManagementWeb\cs\SubscriptionManagementWeb dell'esempio Newsletter e scegliere Open.
Premere F5 per eseguire l'applicazione Web.
Utilizzare la pagina Web per aggiungere sottoscrizioni per l'utente di esempio nell'applicazione Newsletter. I valori predefiniti della sottoscrizione genereranno una notifica.
[!NOTA] Per le applicazioni di produzione o se si esegue l'applicazione con un account con limitazioni, aggiungere l'account di accesso di SQL Server dell'applicazione al ruolo del database NSSubscriberAdmin nei database dell'istanza e dell'applicazione.
Passaggio 3: inoltro degli eventi
In Esplora risorse individuare la cartella principale dell'esempio Newsletter e copiare il file EventData.xml nella sottocartella Events.
Dopo la copia del file, il provider di eventi di monitoraggio del file system legge i dati contenuti nel file, li inoltra all'applicazione e quindi modifica l'estensione del file in done.
Se durante la lettura o l'inoltro dei dati si verifica un errore, il provider di eventi modifica l'estensione del file in err. Per ulteriori informazioni sull'errore, vedere il Visualizzatore eventi di Windows.
Passaggio 4: visualizzazione delle notifiche
Attendere circa un minuto affinché Notification Services produca le notifiche.
In Esplora risorse passare alla cartella Notifications dell'esempio Newsletter. La cartella contiene un file denominato FileNotifications.txt che include le notifiche.
Passare alla cartella dove vengono spostati i messaggi di posta elettronica. Si tratta in genere di una delle cartelle in C:\Inetpub\mailroot. Le notifiche dovrebbero essere contenute nella cartella Pickup o nella cartella Queue, in base allo stato del server SMTP. Se il servizio SMTP è in esecuzione, i messaggi potrebbero essere spostati nella cartella Badmail.
Rimozione dell'esempio
Eseguire la procedura seguente per rimuovere l'esempio Newsletter.
Per rimuovere l'esempio Newsletter
In Esplora oggetti aprire la cartella Notification Services.
Fare clic con il pulsante destro del mouse su NewsletterInstance e scegliere Interrompi.
Fare clic con il pulsante destro del mouse su NewsletterInstance, scegliere Attività e quindi Annulla registrazione.
Fare clic con il pulsante destro del mouse su NewsletterInstance, scegliere Attività e quindi Elimina.
Vedere anche
Altre risorse
Esempi di SQL Server Notification Services
Protezione di Notification Services
Guida in linea e informazioni
Cronologia modifiche
Versione | Cronologia |
---|---|
17 luglio 2006 |
|
14 aprile 2006 |
|