Condividi tramite


Ricezione memorizzata nel buffer

Le informazioni contenute in questo argomento sono valide per Windows Workflow Foundation 4.

In questo esempio viene illustrato come impostare e configurare la funzionalità di ricezione memorizzata nel buffer in Windows Workflow Foundation (WF). La ricezione memorizzata nel buffer consente a un autore di creare un flusso di lavoro senza dover preoccuparsi dell'ordine con cui vengono ricevuti i messaggi. La funzionalità di ricezione memorizzata nel buffer memorizza localmente nel buffer i messaggi e li recapita quando il flusso di lavoro è pronto per riceverli.

Dimostrazione

Elaborazione di messaggi non ordinata tramite la ricezione memorizzata nel buffer con attività di messaggistica.

Ee834509.Important(it-it,VS.100).gif Nota:
È possibile che gli esempi siano già installati nel computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.

<UnitàInstallazione>:\WF_WCF_Samples

Se questa directory non esiste, andare alla sezione relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.

<UnitàInstallazione>:\WF_WCF_Samples\WF\Basic\Services\BufferedReceive

Discussione

In questo esempio, un servizio Windows Communication Foundation (WCF) viene implementato utilizzando WF e dispone di una sequenza di attività Receive. Questo flusso di lavoro modella un semplice processo di approvazione di un prestito in cui il flusso di lavoro prevede l'approvazione di tre notifiche per un prestito. Un'applicazione client Windows Communication Foundation (WCF) invia tre notifiche correlate nell'ordine inverso rispetto a quello previsto dal servizio. Poiché la funzionalità di ricezione memorizzata nel buffer viene attivata in corrispondenza del servizio, ogni messaggio non ordinato viene memorizzato nel buffer in corrispondenza del servizio ed elaborato quando il flusso di lavoro diventa pronto per riceverlo.

La funzionalità di ricezione memorizzata nel buffer richiede che l'associazione supporti l'oggetto ReceiveContent, pertanto il servizio utilizza l'oggetto NetMsmqBinding. Non è richiesta alcuna configurazione particolare per l'associazione, pertanto vengono utilizzate le impostazioni predefinite.

<endpoint address ="net.msmq://localhost/private/LoanService/Service1.xamlx"
                  binding="netMsmqBinding"
                  contract="ILoanService"/>

Il servizio espone inoltre i metadati per il servizio tramite l'oggetto ServiceMetadataBehavior.

Analogamente, l'endpoint client viene configurato utilizzando l'oggetto NetMsmqBinding. Il codice client e la configurazione vengono generati tramite la funzionalità Aggiungi riferimento al servizio di Visual Studio. L'esempio seguente rappresenta l'endpoint client generato nel file App.config.

<endpoint address="net.msmq://localhost/private/LoanService/Service1.xamlx"
                binding="netMsmqBinding" bindingConfiguration="NetMsmqBinding_ILoanService"
                contract="ServiceReference1.ILoanService" name="NetMsmqBinding_ILoanService" />

Per questo esempio è necessario aver abilitato i seguenti componenti di Windows:

  1. Internet Information Services (IIS) 6.0

  2. Compatibilità di gestione, compatibilità metabase e compatibilità configurazione di Internet Information Services (IIS) 6.0

  3. Servizi World Wide Web, funzionalità di sviluppo di applicazioni e ASP.NET

  4. Microsoft Message Queue (MSMQ) Server

Per impostare e compilare l'esempio

  1. In corrispondenza di un prompt dei comandi di Visual Studio 2010, registrare ASP.NET digitando aspnet_regiis –I e premere INVIO.

  2. Eseguire Visual Studio 2010 come Amministratore.

  3. Aprire LoanService.sln.

  4. Quando viene richiesto se si desidera creare directory virtuali per il progetto LoanService, selezionare .

Per impostare le code del servizio

  1. Premere F5 per eseguire l'applicazione LoanClient che crea le code e attiva il servizio definito in Service1.xamlx.

  2. Aprire la console Gestione computer eseguendo Compmgmt.msc da un prompt dei comandi.

  3. Nella console Gestione computer espandere Servizio, Applicazioni, Accodamento messaggi, Code private.

  4. Fare clic con il pulsante destro del mouse sulla coda loanservice/service1.xamlx e selezionare Proprietà.

  5. Selezionare la scheda Sicurezza e aggiungere le autorizzazioni Tutti ricevono messaggi, Visualizza messaggio e Invia messaggio.

  6. Aprire Gestione Internet Information Services (IIS) 6.0 .

  7. Passare a Server, Siti, Sito Web predefinito, Privato, LoanService e selezionare Opzioni avanzate

  8. Impostare Protocolli abilitati su http, net.msmq.

Per eseguire l'esempio

  1. Passare a https://localhost/private/loanservice/service1.xamlx per assicurarsi che il servizio sia in esecuzione.

  2. Premere F5 per eseguire l'applicazione LoanClient. Una volta completato il flusso di lavoro, è necessario salvare un file out.txt nella directory C:\Inbox in cui è contenuto il risultato dello scambio di messaggi.

Per eseguire la pulizia

  1. Aprire la console Gestione computer eseguendo Compmgmt.msc da un prompt dei comandi.

  2. Espandere Servizi e Applicazioni, Accodamento messaggi, Code private.

  3. Eliminare la coda loanservice/service1.xamlx.

  4. Rimuovere la directory C:\Inbox.

Ee834509.Important(it-it,VS.100).gif Nota:
È possibile che gli esempi siano già installati nel computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.

<UnitàInstallazione>:\WF_WCF_Samples

Se questa directory non esiste, andare alla sezione relativa agli esempi di Windows Communication Foundation (WCF) e Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti gli esempi Windows Communication Foundation (WCF) e WF. Questo esempio si trova nella directory seguente.

<UnitàInstallazione>:\WF_WCF_Samples\WF\Basic\Services\BufferedReceive