Esempio FlightNmo
Data aggiornamento: 17 luglio 2006
L'esempio FlightNmo illustra come creare l'applicazione di esempio Flight mediante gli oggetti NMO (Notification Services Management Objects).
Scenario
I clienti sottoscrivono notifiche relative ai prezzi dei voli. In ogni sottoscrizione indicano la città di partenza e di destinazione, il prezzo desiderato e facoltativamente la compagnia aerea.
La società che esegue l'applicazione FlightNmo inoltra i dati degli eventi relativi ai prezzi dei voli all'applicazione copiando dati XML in una cartella monitorata. Notification Services raccoglie quindi tali dati e genera notifiche per i sottoscrittori con sottoscrizioni corrispondenti.
Le notifiche vengono generate quando vengono soddisfatte le condizioni seguenti:
- Il prezzo del biglietto dell'evento è inferiore a quello della sottoscrizione.
- L'aeroporto di partenza dell'evento coincide con quello della sottoscrizione.
- L'aeroporto di destinazione dell'evento coincide con quello della sottoscrizione.
- La compagnia aerea dell'evento coincide con quella della sottoscrizione (se specificata).
Se a un sottoscrittore devono essere inviate più notifiche contemporaneamente, Notification Services utilizza il recapito digest per combinare le diverse notifiche. Notification Services formatta quindi la notifica mediante un formattatore del contenuto XSLT e la distribuisce attraverso il canale di recapito specificato (posta elettronica o file).
Linguaggi
XML, XSD, XSLT e Microsoft Visual C# o Microsoft Visual Basic.
Funzionalità
Nell'esempio FlightNmo vengono utilizzate le funzionalità seguenti di Notification Services:
Area di applicazione | Funzionalità |
---|---|
Classe di evento |
Coda degli eventi di base (senza cronologia). |
Classe di sottoscrizione |
Sottoscrizioni 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. |
Sviluppo dell'istanza e dell'applicazione |
NMO |
Prerequisiti
Prima di eseguire questo esempio, verificare che siano installati i prodotti software seguenti:
- SQL Server 2005, con i componenti seguenti:
- Motore di database.
- Motore e componenti client di 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.
- .NET Framework SDK 2.0 o Microsoft Visual Studio 2005. .NET Framework SDK è disponibile gratuitamente. Vedere Installazione di .NET Framework SDK.
Verificare che i componenti seguenti di Windows siano installati e funzionino correttamente:
- Servizio SMTP (Simple Mail Transfer Protocol), che è un componente di Internet Information Services (IIS). Per impostazione predefinita, in Microsoft Windows Server 2003 il servizio SMTP non è installato con IIS. Per istruzioni su come installare e utilizzare il servizio SMTP, vedere la documentazione di Windows.
Verificare inoltre che l'istanza di Motore di database sia avviata.
Generazione di un file di chiave con nome sicuro
Se non è stato ancora creato un file di chiave con nome sicuro, generare il file di chiave seguendo le istruzioni seguenti.
Per generare un file di chiave con nome sicuro
Aprire il prompt dei comandi di Microsoft Visual Studio 2005. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK 2.0, quindi SDK Command Prompt.
-- oppure --
Aprire il prompt dei comandi di Microsoft .NET Framework. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK 2.0, quindi SDK Command Prompt.
Utilizzare il comando CD (change directory) per passare dalla directory corrente della finestra del prompt dei comandi alla cartella in cui sono stati installati gli esempi.
[!NOTA] Per determinare la cartella in cui si trovano gli esempi, fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft SQL Server 2005, Documentazione ed esercitazioni, quindi Samples. Se è stato utilizzato il percorso di installazione predefinito, gli esempi si troveranno in <unità_sistema>:\Programmi\Microsoft SQL Server\100\Samples.
Al prompt dei comandi digitare il comando seguente per generare il file di chiave:
sn -k SampleKey.snk
Importante: Per ulteriori informazioni sulla coppia di chiavi con nome sicuro, vedere l'argomento relativo ai nomi sicuri e alla protezione in .NET Framework nel centro per sviluppatori di .NET su MSDN.
Creazione dell'istanza di Notification Services
Per creare l'istanza, eseguire le operazioni seguenti:
- Creare e registrare l'istanza di Notification Services.
- Concedere le autorizzazioni per SQL Server, database e cartelle.
Di seguito è illustrato come eseguire queste operazioni per l'esempio FlightNmo.
Passaggio 1: generazione della soluzione Visual Studio
Generare innanzitutto la soluzione Visual Studio.
Se si utilizza Microsoft .NET Framework SDK, eseguire le operazioni seguenti:
- Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK v2.0 e quindi SDK Command Prompt.
- Individuare la cartella principale dell'esempio FlightNmo. Digitare il comando seguente per il percorso predefinito:
cd \Programmi\Microsoft SQL Server\90\Samples\Notification Services\FlightNmo - Digitare la sintassi seguente per generare la soluzione:
[C#]
msbuild FlightNmo.sln
[Visual Basic]
msbuild FlightNmo_VB.sln
In alternativa, se si utilizza Visual Studio 2005, eseguire le operazioni seguenti:
- Aprire il file della soluzione desiderato (FlightNmo.sln o FlightNmo_VB.sln).
- Scegliere Genera soluzione dal menu Genera di Visual Studio.
Passaggio 2: creazione e registrazione dell'istanza di Notification Services
Al prompt dei comandi passare alla cartella Debug di CreateFlightNmoInstance.
cd CreateFlightNmoInstance\linguaggio\CreateFlightNmoInstance\bin\Debug
Eseguire CreateFlightNmoInstance.exe come illustrato di seguito per creare, registrare e abilitare l'istanza. Gli argomenti SqlUserName e SqlPassword sono necessari solo se si utilizza l'autenticazione di SQL Server. Tutti gli altri argomenti sono obbligatori:
**CreateFlightNmoInstance SqlServer=databaseServerSampleDirectory=**directory
**NotificationServicesHost=**NotificationServicesHost
**ServiceUserName=NSServiceUserNameServicePassword=**NSServicePwd
**SqlUserName=NSServiceSqlUserNameSqlPassword=**NSServiceSqlPwd
Quando si esegue questo comando, utilizzare i valori seguenti per i segnaposto indicati in precedenza in questo argomento:
- databaseServer è l'istanza del Motore di database in cui vengono creati i database dell'istanza e dell'applicazione.
- directory è la directory dell'esempio. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\FlightNmo.
- NotificationServicesHost è il server che esegue i componenti del motore di Notification Services. Per questo esempio è consigliabile utilizzare il computer locale.
- NSServiceUserName è l'account in cui viene eseguito il servizio Windows NS$FlightNmoInstance.
- NSServicePwd è la password per l'account NSServiceUserName.
- Utilizzare gli argomenti per l'autenticazione di SQL Server, NSServiceSqlUserName e NSServiceSqlPwd, solo se si utilizza l'autenticazione di SQL Server. Se questi argomenti vengono specificati, il servizio Windows li utilizza per connettersi al Motore di database.
Al completamento del comando, sono disponibili due nuovi database e un servizio Windows. I database sono denominati FlightNmoInstanceNSMain e FlightNmoInstanceFlightNmo, e il servizio Windows NS$FlightNmoInstance.
[!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 e per il database
Eseguire SQL Server Management Studio e connettersi all'istanza del Motore di database specificata nell'argomento SqlServer.
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 nell'argomento ServiceUserName.
- Per utilizzare l'autenticazione di SQL Server, selezionare Autenticazione di SQL Server e immettere i valori specificati per gli argomenti SqlUserName e SqlPassword.
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 FlightNmoInstanceNSMain:
- In Utenti mappati all'account di accesso seguente selezionare FlightNmoInstanceNSMain.
- In Appartenenza a ruoli del database per: FlightNmoInstanceNSMain selezionare NSRunService.
Concedere le autorizzazioni per il database FlightNmoInstanceFlightNmo:
- In Utenti mappati all'account di accesso seguente selezionare FlightNmoInstanceFlightNmo.
- In Appartenenza a ruoli del database per: FlightNmoInstanceFlightNmo selezionare NSRunService.
Fare clic su OK per concedere le autorizzazioni per SQL Server.
In Esplora risorse configurare la protezione per la cartella Events:
- Individuare la cartella Events dell'esempio.
- 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:
- Individuare la cartella Notifications dell'esempio.
- 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, è necessario eseguire le operazioni seguenti:
- Avviare l'istanza.
- Aggiungere sottoscrittori e sottoscrizioni.
- Copiare un file XML che contiene eventi.
- Visualizzare le notifiche risultanti.
Di seguito è illustrato come eseguire queste operazioni.
Passaggio 1: avvio dell'istanza
In Esplora oggetti aprire la cartella Notification Services.
Fare clic con il pulsante destro del mouse su FlightNmoInstance e quindi scegliere Avvia.
Passaggio 2: aggiunta di sottoscrittori e sottoscrizioni
Eseguire AddSubscribers.exe.
Il percorso predefinito del file è C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\FlightNmo\AddSubscribers\linguaggio\AddSubscribers\bin\Debug.
Eseguire AddSubscriptions.exe.
Il percorso predefinito del file è C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\FlightNmo\AddSubscriptions\linguaggio\AddSubscriptions\bin\Debug.
[!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 FlightNmo 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 individuare la cartella Notifications dell'esempio FlightNmo. La cartella contiene un file denominato FileNotifications.txt, che include notifiche basate su file.
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 le operazioni seguenti per rimuovere l'esempio FlightNmo.
Per rimuovere l'esempio FlightNmo
In SQL Server Management Studio, in Esplora oggetti, aprire la cartella Notification Services.
Fare clic con il pulsante destro del mouse su FlightNmoInstance e quindi scegliere Interrompi.
Fare clic con il pulsante destro del mouse su FlightNmoInstance, scegliere Attività e quindi Annulla registrazione.
Fare clic con il pulsante destro del mouse su FlightNmoInstance, 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 |
---|---|
14 aprile 2006 |
|
5 dicembre 2005 |
|