Condividi tramite


Esempio Flight

Data aggiornamento: 17 luglio 2006

L'esempio Flight è un'applicazione di Microsoft SQL Server 2005 Notification Services guidata dagli eventi che genera notifiche relative ai prezzi dei voli per i sottoscrittori in base alle relative sottoscrizioni.

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 Flight 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 Flight 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.

Prerequisiti

Prima di eseguire questo esempio, verificare che siano installati i prodotti software seguenti:

  • SQL Server 2005, con i componenti seguenti:
    • Motore di database
    • Notification Services
    • SQL Server Management Studio
    • Gli 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 inoltre che i componenti seguenti di Microsoft 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.

Creazione dell'istanza di Notification Services

Per creare l'istanza, eseguire le operazioni seguenti:

  • Creare l'istanza di Notification Services.
  • 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 Flight.

Passaggio 1: creazione dell'istanza di Notification Services

  1. Aprire SQL Server Management Studio e connettersi a un'istanza di SQL Server.

  2. In Esplora oggetti fare clic con il pulsante destro del mouse sulla cartella Notification Services e scegliere Nuova istanza di Notification Services.

  3. Nella finestra di dialogo Nuova istanza di Notification Services fare clic su Sfoglia e selezionare il file InstanceConfig.xml nella cartella principale dell'esempio Flight.

  4. In Parametri specificare i valori per i tre parametri:

    • SampleDirectory: il percorso della cartella principale dell'esempio Flight. Il percorso predefinito è C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\Flight.
    • NotificationServicesHost: il nome del server di Notification Services.
    • SQLServer: il nome dell'istanza di SQL Server.
  5. Selezionare la casella di controllo Attiva istanza dopo la creazione.

  6. Fare clic su OK.

  7. Al termine della creazione dell'istanza, fare clic su Chiudi.

Passaggio 2: registrazione dell'istanza di Notification Services

  1. In SQL Server Management Studio espandere il nodo Notification Services, fare clic con il pulsante destro del mouse su FlightInstance, scegliere Attività e quindi Registra.

  2. 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.

  3. In Accesso al servizio immettere l'account di accesso 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.

  4. 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.

  5. Fare clic su OK.

  6. 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

  1. In Esplora oggetti espandere il nodo Protezione.

  2. 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.
  3. 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à.

  4. Nel riquadro sinistro della finestra di dialogo Proprietà account di accesso selezionare Mapping utenti.

  5. Concedere le autorizzazioni per il database FlightInstanceNSMain:

    1. In Utenti mappati all'account di accesso seguente selezionare FlightInstanceNSMain.
    2. In Appartenenza a ruoli del database per: FlightInstanceNSMain selezionare NSRunService.
  6. Concedere le autorizzazioni per il database FlightInstanceFlight:

    1. In Utenti mappati all'account di accesso seguente selezionare FlightInstanceFlight.
    2. In Appartenenza a ruoli del database per: FlightInstanceFlight selezionare NSRunService.
  7. Fare clic su OK per concedere le autorizzazioni per SQL Server.

  8. In Esplora risorse configurare la protezione per la cartella Events:

    1. Individuare la cartella Events dell'esempio.
    2. Fare clic con il pulsante destro del mouse sulla cartella Events, scegliere Condivisione e protezione e quindi selezionare la scheda Protezione.
    3. Fare clic su Aggiungi e aggiungere l'account utilizzato dal servizio Windows.
    4. In Utenti e gruppi selezionare l'account aggiunto.
    5. In Autorizzazioni per selezionare le autorizzazioni Lettura e Modifica.
    6. Fare clic su OK per rendere effettive le modifiche.
  9. Configurare la protezione per la cartella Notifications:

    1. Individuare la cartella Notifications dell'esempio.
    2. Fare clic con il pulsante destro del mouse sulla cartella Notifications, scegliere Condivisione e protezione e quindi selezionare la scheda Protezione.
    3. Fare clic su Aggiungi e aggiungere l'account utilizzato dal servizio Windows.
    4. In Utenti e gruppi selezionare l'account aggiunto.
    5. In Autorizzazioni per selezionare Scrittura.
    6. Fare clic su OK per rendere effettive le modifiche.

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

  1. 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.

  2. 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.

  3. Al prompt dei comandi digitare il comando seguente per generare il file di chiave:

    sn -k SampleKey.snk

    ms160946.note(it-it,SQL.90).gifImportante:
    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.

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 e quindi visualizzare le notifiche risultanti.

Passaggio 1: avvio dell'istanza

  1. In Esplora oggetti aprire la cartella Notification Services.

  2. Fare clic con il pulsante destro del mouse su FlightInstance e scegliere Avvia.

Passaggio 2: aggiunta di sottoscrittori e sottoscrizioni

  1. Generare la soluzione Visual Studio Flight o Flight_VB

    Se si utilizza Microsoft .NET Framework SDK, eseguire le operazioni seguenti:

    1. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft .NET Framework SDK v2.0 e quindi SDK Command Prompt.
    2. Individuare la cartella principale dell'esempio Flight. Digitare il comando seguente per il percorso predefinito:
      cd \Programmi\Microsoft SQL Server\90\Samples\Notification Services\Flight
    3. Digitare la sintassi seguente per generare la soluzione Visual Studio.
      [C#] 
      msbuild Flight.sln
      [Visual Basic] 
      msbuild Flight_VB.sln

    In alternativa, se si utilizza Visual Studio 2005, eseguire le operazioni seguenti:

    1. Aprire il file della soluzione desiderato (Flight.sln o Flight_VB.sln).
    2. Generare la soluzione.
  2. Eseguire AddSubscribers.exe.

    Il percorso predefinito del file è C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscribers\linguaggio\AddSubscribers\bin\Debug.

  3. Eseguire AddSubscriptions.exe.

    C:\Programmi\Microsoft SQL Server\90\Samples\Notification Services\Flight\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

  1. In Esplora risorse individuare la cartella principale dell'esempio Flight 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

  1. Attendere circa un minuto affinché Notification Services produca le notifiche.

  2. In Esplora risorse individuare la cartella Notifications dell'esempio Flight. La cartella contiene un file denominato FileNotifications.txt, che include notifiche basate su file.

  3. 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

Per rimuovere l'esempio Flight, eseguire le operazioni seguenti.

Per rimuovere l'esempio Flight

  1. In SQL Server Management Studio, in Esplora oggetti, aprire la cartella Notification Services.

  2. Fare clic con il pulsante destro del mouse su FlightInstance e scegliere Interrompi.

  3. Fare clic con il pulsante destro del mouse su FlightInstance, scegliere Attività e quindi Annulla registrazione.

  4. Fare clic con il pulsante destro del mouse su FlightInstance, scegliere Attività e quindi Elimina.

Vedere anche

Altre risorse

Esempi di SQL Server Notification Services
Protezione di Notification Services

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

14 aprile 2006

Contenuto aggiunto:
  • Aggiunta di una nota sull'esecuzione degli esempi utilizzando le autorizzazioni del proprietario del database.

5 dicembre 2005

Contenuto modificato:
  • Modifica delle istruzioni per la generazione di un file di chiave, inclusi il nome e il percorso del file di chiave.