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.
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:
Internet Information Services (IIS) 6.0
Compatibilità di gestione, compatibilità metabase e compatibilità configurazione di Internet Information Services (IIS) 6.0
Servizi World Wide Web, funzionalità di sviluppo di applicazioni e ASP.NET
Microsoft Message Queue (MSMQ) Server
Per impostare e compilare l'esempio
In corrispondenza di un prompt dei comandi di Visual Studio 2010, registrare ASP.NET digitando
aspnet_regiis –I
e premere INVIO.Eseguire Visual Studio 2010 come Amministratore.
Aprire LoanService.sln.
Quando viene richiesto se si desidera creare directory virtuali per il progetto LoanService, selezionare Sì.
Per impostare le code del servizio
Premere F5 per eseguire l'applicazione LoanClient che crea le code e attiva il servizio definito in Service1.xamlx.
Aprire la console Gestione computer eseguendo Compmgmt.msc da un prompt dei comandi.
Nella console Gestione computer espandere Servizio, Applicazioni, Accodamento messaggi, Code private.
Fare clic con il pulsante destro del mouse sulla coda loanservice/service1.xamlx e selezionare Proprietà.
Selezionare la scheda Sicurezza e aggiungere le autorizzazioni Tutti ricevono messaggi, Visualizza messaggio e Invia messaggio.
Aprire Gestione Internet Information Services (IIS) 6.0 .
Passare a Server, Siti, Sito Web predefinito, Privato, LoanService e selezionare Opzioni avanzate
Impostare Protocolli abilitati su http, net.msmq.
Per eseguire l'esempio
Passare a https://localhost/private/loanservice/service1.xamlx per assicurarsi che il servizio sia in esecuzione.
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
Aprire la console Gestione computer eseguendo Compmgmt.msc da un prompt dei comandi.
Espandere Servizi e Applicazioni, Accodamento messaggi, Code private.
Eliminare la coda loanservice/service1.xamlx.
Rimuovere la directory C:\Inbox.
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
|