Procedura dettagliata: Pubblicazione di servizi WCF con l'adapter WCF-NetMsmq
Nota
Per altre informazioni sulle schede, vedere Adapter in BizTalk Server.
Introduzione
In BizTalk Server è possibile pubblicare un'orchestrazione come servizio WINDOWS Communication Foundation (WCF). Tramite una posizione di ricezione BizTalk, un'orchestrazione può esporre un endpoint WCF, che consente di essere chiamato da un client WCF. La Pubblicazione guidata servizio WCF BizTalk offre un modo semplice per esporre un'orchestrazione come posizione di ricezione.
L'adattatore WCF-NetMsmq usa l'associazione NetMsmqBinding per fornire supporto per l'uso di Accodamento messaggi Microsoft (noto anche come MSMQ) come trasporto sottostante. Il client di un servizio WCF invia messaggi WCF a una coda MSMQ usando il percorso di ricezione configurato per usare l'adattatore WCF-NetMSMQ. L'adapter raccoglie i messaggi WCF dalla coda MSMQ, li converte in formato BizTalk Server e li scrive nel database messageBox BizTalk Server.
Questa procedura dettagliata illustra come un'applicazione console client WCF usa l'adattatore WCF-NetMsmq per comunicare con un servizio WCF, ospitato in un'applicazione console .NET, tramite una coda di messaggi MSMQ. Viene descritto come pubblicare metadati per un indirizzo di ricezione con la Pubblicazione guidata servizio WCF BizTalk e come configurare un'applicazione Web per supportare la pubblicazione di metadati.
Al termine della procedura dettagliata sarà chiaro come completare le attività seguenti:
Da Visual Studio usare il comando Distribuisci per distribuire assembly BizTalk in un'istanza locale di BizTalk Server. Ciò consente di creare un'applicazione BizTalk popolata dagli assembly. Un assembly BizTalk contiene informazioni sulle risorse, quali orchestrazioni, pipeline, schemi e mappe da utilizzare in una soluzione BizTalk.
Dalla console di amministrazione BizTalk Server configurare un percorso di ricezione WCF-NetMsmq per ospitare il servizio WCF pubblicato.
Dalla Creazione guidata servizio WCF BizTalk creare l'applicazione Web per pubblicare i metadati per una posizione di ricezione esistente. Questi metadati vengono utilizzati dal client che invia messaggi all'indirizzo di ricezione.
Prerequisiti
Per eseguire la procedura illustrata in questo esempio, verificare che nell'ambiente siano installati i prerequisiti seguenti:
Sia il computer che compila gli assembly e esegue il processo di distribuzione e il computer che esegue l'esempio, richiedono Microsoft Windows Server, .NET Framework e BizTalk Server.
Nel computer utilizzato per compilare gli assembly ed eseguire il processo di distribuzione è richiesto Microsoft Visual Studio.
Il computer che esegue l'esempio richiede gli adapter WCF e gli strumenti di amministrazione WCF. Queste sono le opzioni da installare durante l'installazione di Microsoft BizTalk Server.
Nei computer usati per eseguire attività amministrative, è necessario eseguire come account utente membro del gruppo amministratori di BizTalk Server per configurare le impostazioni dell'applicazione BizTalk Server all'interno della console di amministrazione di BizTalk Server. Questo account utente deve inoltre essere membro del gruppo Administrators locale per poter eseguire la distribuzione delle applicazioni, la gestione delle istanze dell'host e altre attività che potrebbero rivelarsi necessarie.
In qualsiasi computer che richiede la funzionalità WCF, completare la procedura di configurazione one-time per gli esempi WCF in https://go.microsoft.com/fwlink/?LinkId=135510.
Nel computer che esegue l'esempio e importa un'associazione o un file di .msi in BizTalk Server, assicurarsi che l'host non sia un host attendibile o che l'importazione avrà esito negativo.
È necessario scaricare il codice della procedura dettagliata ed estrarlo nel computer. Questa procedura dettagliata fa parte dell'intero pacchetto della procedura dettagliata dell'adapter WCF. È possibile scaricare il file WCFAdapterWalkthroughs.exe dal BizTalk Server Developer Center in https://go.microsoft.com/fwlink/?LinkId=194140.
Compilare e distribuire la soluzione BizTalk, BizTalkApp
Estrarre WCFNetMsmqAdapterPublishing.exe in C:\WCFNetMsmqAdapterPublishing.
In Visual Studio aprire il file WCFNetMsmqAdapterPublishing.sln .
In Esplora soluzioni espandere BizTalkApp e quindi aprire OrderProcess.odx da esaminare. L'orchestrazione di esempio riceve messaggi di richiesta ordine e restituisce semplicemente i messaggi di risposta ordine.
Poiché l'assembly BizTalkApp deve essere installato nella GAC, sarà necessario un file di chiave con nome sicuro per completare il processo di distribuzione. Fare clic con il pulsante destro del mouse sul progetto BizTalkApp e quindi scegliere Proprietà. Nella pagina Proprietà fare clic su Firma e selezionare Firma l'assembly. Fare clic sulla freccia verso il basso nell'elenco a discesa Scegli un file chiave nome sicuro , fare clic su <Nuovo> e immettere
keyfile.snk
nella casella di testo Nome file chiave . Deselezionare Proteggi il file della chiave con una password e quindi fare clic su OK.Fare clic sulla scheda Distribuzione e quindi modificare la proprietà Server se si usa un server di database diverso per il database Di gestione BizTalk oltre a LOCALHOST. Assicurarsi che il valore dell'applicazione BizTalk sia impostato su WCFNetMsmqAdapterPublishing. Assicurarsi che Install to Global Assembly Cache sia impostato su True.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto BizTalkApp e quindi scegliere Ricompilazione.
In Esplora soluzioni fare clic con il pulsante destro del mouse su BizTalkApp e quindi scegliere Distribuisci.
Configurare l'applicazione
Eseguire le operazioni seguenti per verificare che il componente Accodamento messaggi Microsoft sia installato nel computer:
Fare clic su Start, fare clic con il pulsante destro del mouse su Computer e quindi scegliere Gestisci per aprire Server Manager.
Espandere il nodo Funzionalità . Se accodamento messaggi non è installato, fare clic con il pulsante destro del mouse su Funzionalità e scegliere Aggiungi funzionalità. Selezionare Accodamento messaggi, fare clic su Avanti e quindi su Installa per installare MSMQ nel sistema.
Eseguire le operazioni seguenti per verificare che il servizio Accodamento messaggi sia avviato nel computer per essere utilizzato dall'adapter WCF-NetMsmq:
Fare clic sul pulsante Start, scegliere Strumenti di amministrazione e quindi Servizi.
In Servizi assicurarsi che lo stato del servizio Accodamento messaggi sia avviato. Se il servizio non viene avviato, fare clic con il pulsante destro del mouse su Accodamento messaggi e quindi scegliere Avvia.
Creare la coda di destinazione utilizzata dal percorso di ricezione da cui l'adattatore WCF-NetMsmq raccoglie i messaggi WCF in ingresso dai client.
Fare clic sul pulsante Start, scegliere Strumenti di amministrazione, quindi Gestione computer.
In Gestione computer espandere Servizi e applicazioni, espandere Accodamento messaggi, fare clic con il pulsante destro del mouse su Code private, scegliere Nuovo e quindi fare clic su Coda privata.
Nella finestra di dialogo Nuova coda privata digitare
WCFNetMsmqAdapterPublishing
nella casella di testo Nome coda selezionare la casella di controllo Transazionale e quindi fare clic su OK.
Eseguire le operazioni seguenti per creare un indirizzo di ricezione WCF-NetMsmq per l'applicazione di esempio:
Fare clic su Start, scegliere Tutti i programmi, scegliere Microsoft BizTalk Server 20xx e quindi fare clic su BizTalk Server Amministrazione.
Nella console di amministrazione BizTalk Server espandere Gruppo BizTalk, espandere Applicazioni, espandere WCFNetMsmqAdapterPublishing, fare clic con il pulsante destro del mouse su Porte di ricezione, scegliere Nuovo e quindi fare clic su Porta di ricezione unidirezionale.
Nella finestra di dialogo Proprietà porta di ricezione , nella casella di testo Nome digitare
WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder
e quindi fare clic su OK.Nella console di amministrazione BizTalk Server fare clic con il pulsante destro del mouse su WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder, scegliere Nuovo e quindi fare clic su Posizione di ricezione.
Nella finestra di dialogo Proprietà percorso di ricezione digitare nella casella
WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq
di testo Nome .Nella finestra di dialogo Proprietà percorso di ricezione , nella sezione Trasporto accanto a Tipo selezionare WCF-NetMsmq dall'elenco a discesa e quindi fare clic su Configura.
Nella finestra di dialogo Proprietà trasporto WCF-NetMsmq , nella scheda Generale , nella casella di testo Indirizzo (URI) digitare
net.msmq://localhost/private/WCFNetMsmqAdapterPublishing
.Nella finestra di dialogo Proprietà trasporto WCF-NetMsmq , nella scheda Binding assicurarsi che sia selezionata la casella di controllo Transazionale .
Nota
Poiché la coda di destinazione è stata creata come coda transazionale, è necessario selezionare questa casella di controllo. In caso contrario, l'indirizzo di ricezione non sarà abilitato perché esisterà una discrepanza tra il requisito transazionale dell'indirizzo di ricezione e quello della sottostante coda di Accodamento messaggi.
Nella finestra di dialogo Proprietà trasporto WCF-NetMsmq selezionare Nessuno nell'elenco a discesa Modalità di sicurezza.
Nota
Questa procedura dettagliata presuppone che MSMQ sia installato con l'integrazione di Active Directory disabilitata nel computer. Il valore predefinito, WindowsDomain, per la proprietà modalità di autenticazione MSMQ è disponibile quando l'integrazione di Active Directory è abilitata.
Nella finestra di dialogo Proprietà percorso di ricezione fare clic su OK.
Creare una porta di trasmissione FILE per l'applicazione di esempio. Questa porta viene utilizzata per il routing della risposta dell'ordine di acquisto dall'orchestrazione sottostante del servizio.
Nella console di amministrazione di BizTalk Server espandere WCFNetMsmqAdapterPublishing, fare clic con il pulsante destro del mouse su Invia porte, scegliere Nuovo e quindi fare clic su Porta di invio statica in modalità unidirezionale.
Nella finestra di dialogo Invia proprietà porta digitare nella casella
WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File
di testo Nome .Nella finestra di dialogo Invia proprietà porta , nella sezione Trasporto accanto a Tipo selezionare FILE dall'elenco a discesa e quindi fare clic su Configura.
Nella scheda Generale della finestra di dialogo Proprietà trasporto FILE digitare e quindi fare clic su OK nella scheda Generale nella casella di testo
C:\WCFNetMsmqAdapterPublishing\Out
Cartella destinazione.Nella finestra di dialogo Proprietà porta di invio fare clic su OK.
Specificare il nome host e i binding per l'applicazione di esempio come segue:
Nella console di amministrazione BizTalk Server espandere WCFNetMsmqAdapterPublishing, espandere Orchestrazioni, fare clic con il pulsante destro del mouse sull'orchestrazione di esempio, scegliere Proprietà, fare clic su Associazioni e impostare Host su BizTalkServerApplication o su un altro host appropriato.
Nella finestra di dialogo Proprietà orchestrazione selezionare WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder dall'elenco a discesa Porte di ricezione per PurchaseOrderRequestPort.
Nella finestra di dialogo Proprietà orchestrazione selezionare WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File dall'elenco a discesa Send Ports/Send Port Groups per PurchaseOrderResponsePort.
Nella finestra di dialogo Proprietà orchestrazione fare clic su OK per salvare la configurazione.
Pubblicare i metadati per il percorso di ricezione WCF-NetMsmq
Fare clic su Start, scegliere Tutti i programmi, scegliere Microsoft BizTalk Server 20xx e quindi fare clic su Pubblicazione guidata servizio WCF BizTalk.
Nella pagina Pubblicazione guidata servizio WCF BizTalk fare clic su Avanti.
Nella pagina Tipo di servizio WCF selezionare la casella di controllo Solo endpoint metadati (MEX) per pubblicare i metadati per il percorso di ricezione WCFNetMsmq. Selezionare WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq nell'elenco a discesa Pubblica metadati per la ricezione della posizione e quindi fare clic su Avanti.
Nella pagina Crea servizio WCF selezionare Pubblica orchestrazioni BizTalk come servizio WCF e quindi fare clic su Avanti.
Nella casella di testo BizTalk Assembly (*.dll) della pagina Assembly BizTalk fare clic su Sfoglia per passare alla cartella C:\WCFNetMsmqAdapterPublishing\BizTalkApp\bin\Development, fare doppio clic sull'assembly contenente l'orchestrazione di esempio da pubblicare e quindi fare clic su Avanti.
Nella pagina Orchestrazioni e porte verificare che il nodo Port: PurchaseOrderRequestPort sia selezionato nella pagina e quindi fare clic su Avanti.
I metadati MEX per la porta di ricezione verranno pubblicati e utilizzati dal client per l'invio di messaggi all'indirizzo di ricezione.
Nella casella di testo Spazio dei nomi destinazione del servizio WCF della pagina Proprietà servizio WCF digitare un URI che si desidera che il servizio WCF pubblicato usi e quindi fare clic su Avanti. Per questa procedura dettagliata, lasciare l'URI predefinito,
http://tempuri.org/
.Nella pagina Posizione del servizio WCF eseguire le azioni seguenti per specificare il percorso dei servizi WCF da creare e quindi fare clic su Avanti:
Nella casella di testo Percorso digitare il nome della directory Web in cui viene eseguito il servizio WCF oppure fare clic su Sfoglia e selezionare una directory Web. Per questa procedura dettagliata, lasciare il percorso predefinito (http://localhost/<Nome> assembly BizTalk) nella casella di testo Percorso.
Selezionare l'opzione Consenti l'accesso anonimo al servizio WCF . - Questa opzione consente di aggiungere l'accesso anonimo alla directory virtuale creata. È necessario selezionarla per consentire l'autenticazione anonima per l'applicazione Web che verrà creata tramite la procedura guidata.
Nella pagina Riepilogo servizio WCF fare clic su Crea per creare il servizio WCF.
Nella pagina Completamento pubblicazione guidata servizio WCF BizTalk fare clic su Fine.
Configurare l'applicazione Web che ospita il servizio metadati pubblicato
Aprire un prompt dei comandi, passare alla cartella C:\inetpub\wwwroot\Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp in cui la Pubblicazione guidata servizio WCF BizTalk ha creato il servizio WCF. Aprire il file Web.config usando blocco note.
Nel Blocco note aggiungere la riga seguente all'interno dell'elemento <system.web> :
<trust level="Full" originUrl="" />
Nota
Questa impostazione è facoltativa. Concede all'applicazione ASP.NET che ospita l'accesso al servizio WCF pubblicato a qualsiasi risorsa soggetta alla sicurezza del sistema operativo.
Testare il servizio WCF pubblicato usando Internet Explorer come indicato di seguito:
Fare clic sul pulsante Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
In Gestione Internet Information Services (IIS) creare un pool di applicazioni in cui verrà eseguito il servizio dotato delle autorizzazioni corrette per il database BizTalk. Fare clic con il pulsante destro del mouse su Pool di applicazioni, scegliere Aggiungi pool di applicazioni, immettere un nome per il pool di applicazioni e quindi fare clic su OK.
Espandere Pool di applicazioni, fare clic con il pulsante destro del mouse sul pool di applicazioni appena creato e quindi scegliere Impostazioni avanzate. Nella sezione Modello di processo immettere l'account che ha accesso ai database BizTalk Server nel campo Identità.
Espandere Siti Web, sito Web predefinito, quindi espandere l'applicazione Web creata dalla Pubblicazione guidata servizio WCF BizTalk.
Nel riquadro centrale di Gestione IIS fare clic su Visualizzazione contenuto per visualizzare i file per l'applicazione.
Fare clic con il pulsante destro del mouse sul file del servizio Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc creato dalla Pubblicazione guidata servizio WCF BizTalk , quindi scegliere Sfoglia. Verrà aperto Internet Explorer per visualizzare la pagina servizio BizTalkServerInstance che indica che è in esecuzione un'istanza del servizio WCF. Nella pagina viene visualizzato un indirizzo WSDL completo che è possibile copiare e usare con lo Strumento metadati del servizio (svcutil.exe) o da Visual Studio, per recuperare il codice proxy e un file di configurazione che può essere usato per creare un'applicazione client per il servizio.
Copiare negli Appunti la riga di comando con l'indirizzo WSDL completo della pagina del servizio BizTalkServerInstance visualizzata in Internet Explorer nel passaggio precedente.
svcutil.exe http://localhost/Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp/Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc?wsdl
Compilare l'applicazione client
Aprire un prompt dei comandi di Visual Studio come amministratore e passare alla cartella C:\WCFNetMsmqAdapterPublishing\WCFClient . in cui si inseriranno la classe proxy e il file di configurazione dell'applicazione.
Incollare l'intera riga di comando svcutil.exe contenente l'indirizzo WSDL completo copiato nella procedura precedente e quindi premere INVIO. Verrà creata la classe proxy, BizTalkServiceInstance.cs e il file di configurazione dell'applicazione output.config. Mantenere aperta la finestra del prompt dei comandi per l'uso durante la sezione finale.
In Visual Studio, in Esplora soluzioni, fare clic con il pulsante destro del mouse su WCFClient, scegliere Aggiungie quindi fare clic su Elemento esistente.
Nella finestra di dialogo Aggiungi elemento esistente passare alla cartella WCFClient , selezionare Tutti i file (*.*) nell'elenco a discesa File di tipo , selezionare i file BizTalkServiceInstance.cs e output.config e quindi fare clic su Aggiungi.
Espandere WCFClient, fare clic con il pulsante destro del mouse output.config, scegliere Rinomina e quindi digitare
App.config
come nuovo nome.Fare doppio clic su Program.cs per esaminare come chiamare il servizio WCF pubblicato usando la classe proxy generata da svcutil.exe.
Espandere Riferimenti e verificare che il progetto WCFClient abbiaSystem.ServiceModel.dll a cui si fa riferimento.
Fare clic con il pulsante destro del mouse sul progetto WCFClient e scegliere Compila. Mantenere aperto Visual Studio e passare alla sezione successiva.
Testare la soluzione di esempio con l'adattatore WCF-NetMsmq
Nella console di amministrazione di BizTalk Server fare clic con il pulsante destro del mouse sull'applicazione WCFNetMsmqAdapterPublishing e quindi scegliere Avvia. Nella finestra di dialogo Start fare clic su Start.
Nella console di amministrazione di BizTalk Server espandere Impostazioni piattaforma, istanze host, fare clic con il pulsante destro del mouse su BizTalkServerApplication o su un'altra istanza host appropriata e quindi scegliere Riavvia. Anche se non è necessario, è consigliabile eseguire questo passaggio per verificare il corretto funzionamento dell'esempio fino a questo punto.
In Visual Studio scegliere Avvia senza eseguire debug dal menu Debug per eseguire l'applicazione WCFClient. Verrà inviato un messaggio di esempio all'indirizzo di ricezione WCF-NetMsmq. Verrà quindi visualizzato il messaggio di output seguente indicante che il messaggio è stato inviato.
Chiamata all'operazione Submit sull'indirizzo di ricezione WCF-NetMsmq
Premere un tasto qualsiasi per chiudere l'applicazione client WCF
Premere un tasto qualsiasi per chiudere l'applicazione WCFClient.
Nel prompt dei comandi di Visual Studio passare alla cartella C:\WCFNetMsmqAdapterPublishing\Out e quindi verificare che il messaggio di risposta inviato dall'applicazione WCFClient esista.
Fare doppio clic sul file {GUID}.xml per aprirlo in Internet Explorer e visualizzare il valore OrderID elaborato dal servizio.
Vedere anche
Configurare un adapter WCF WCF-NetMsmq di ricezioneprocedure dettagliateper la pubblicazione dei metadati del servizio per gli adapter di ricezione WCF