Condividi tramite


Procedura dettagliata: Elaborazione personalizzata dei messaggi con l'adapter WCF-NetTcp

In questa procedura dettagliata un client Windows Communication Foundation (WCF) invia un messaggio WCF contenente dati di immagine JPEG binari incorporati a un percorso di ricezione BizTalk tramite l'adapter WCF-NetTcp. L'immagine JPEG con codifica binaria viene estratta usando un'istruzione XPath (con codifica nodo Base64) tramite le impostazioni Del corpo del messaggio in ingresso nella configurazione dell'adattatore. L'elaborazione XPath è diversa dal metodo predefinito usato BizTalk Server per gestire i messaggi in ingresso. Nel metodo predefinito, l'adapter ottiene l'intero contenuto dell'elemento Body del messaggio WCF e lo invia al database MessageBox BizTalk. L'elaborazione di messaggi XPath estrae parti specifiche di un messaggio WCF in ingresso per creare un messaggio BizTalk personalizzato. In questa elaborazione XPath di esempio individua un elemento XML denominato SendPicture nel messaggio WCF in ingresso (in formato XML). Dopo aver individuato l'elemento, XPath estrae il relativo valore come oggetto con codifica binaria Base64 e inserisce tale valore binario in un messaggio di BizTalk. Il messaggio viene pubblicato nel database MessageBox e quindi viene inviato a una porta di trasmissione FILE tramite la sottoscrizione di un filtro di porta di trasmissione. Nell'esempio non vengono utilizzate orchestrazioni. Tutta l'elaborazione viene eseguita tramite il sistema di messaggistica BizTalk utilizzando XPath.

Un adattatore WCF viene usato per comunicare con i client Windows Communication Foundation (WCF) e i servizi remoti WCF da BizTalk Server. Consente la pubblicazione di orchestrazioni e schemi come servizi WCF e offre inoltre la possibilità di utilizzare servizi WCF esterni in un'orchestrazione. L'adattatore WCF-NetTcp usa l'associazione NetTcpBinding , il che significa che il trasporto TCP usa una codifica di messaggi binari ottimizzata. L'adapter WCF-NetTcp è costituito da un adapter di trasmissione e da uno di ricezione. Fornisce accesso completo alle funzionalità di sicurezza, affidabilità e transazioni SOAP.

Al termine della procedura dettagliata sarà chiaro come completare le attività seguenti:

  • Usando la console di amministrazione di BizTalk Server, importare un file MSI per creare una porta di trasmissione, una porta di ricezione e un percorso di ricezione.

  • Usando la console di amministrazione di BizTalk Server, configurare un percorso di ricezione WCF per eseguire un'istruzione XPath per estrarre dati dall'elemento SendPicture del messaggio WCF.

Nota

L'elemento hosttrusted specifica se l'host associato al gestore di ricezione è attendibile. Nel file bindings.xml è impostato sull'impostazione predefinita di false perché in questo esempio non è importante usare il servizio Single Sign-On (SSO) di BizTalk Server Enterprise. SSO consente il passaggio di credenziali utente tramite BizTalk Server di integrare applicazioni di terze parti con BizTalk Server. Un'impostazione false impedisce a un messaggio BizTalk di passare attraverso il servizio BizTalk come parte dell'elaborazione SSO.

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 ed esegue il processo di distribuzione, sia il computer che esegue l'esempio, richiedono Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 e Microsoft 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 BizTalk Server Administrators 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 installazione monouso per gli esempi WCF in https://go.microsoft.com/fwlink/?LinkId=135510.

  • Nel computer che esegue l'esempio e importa un file .msi in BizTalk Server, verificare 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 fileWCFAdapterWalkthroughs.exe dal BizTalk Server Developer Center all'indirizzo https://go.microsoft.com/fwlink/?LinkId=194140.

Configurare l'applicazione WCFCustomMessageProcessing e gli elementi

  1. Nella console di amministrazione di BizTalk Server fare clic con il pulsante destro del mouse su Applicazioni, scegliere Importa e quindi selezionare File MSI. Passare al file C:\WCFCustomMessageProcessing\WCFCustomMessageProcessing.msi e quindi fare clic su Apri. Verranno creati gli elementi seguenti per l'applicazione:

    • Porta di trasmissione FileSP: percorso nel file system locale di C:\WCFCustomMessageProcessing\Out in cui i dati dell'immagine JPEG vengono inviati da BizTalk Server come output finale dell'elaborazione di esempio. È possibile visualizzare il filtro della porta di trasmissione di BTS. ReceivePortName = NetTcpRP configurato nella finestra di dialogo Proprietà FileSP in Filtri. Il filtro è associato alla porta di ricezione NetTcp. Tutti i messaggi accettati nella porta di ricezione NetTcpRP verranno inviati al percorso di output della porta di trasmissione FileSP di C:\WCFCustomMessageProcessing\Out dopo che il percorso di ricezione esegue l'elaborazione XPath nel messaggio.

    • Porta di ricezione NetTcpRP: porta che contiene logicamente il percorso di ricezione NetTcpRL.

    • Percorso di ricezione NetTcpRL: usa la pipeline PassThroughTransmit predefinita e l'adattatore WCF-NetTcp per eseguire un'istruzione XPath per estrarre i dati dell'immagine JPEG dal messaggio WCF in ingresso.

Procedura alternativa per configurare l'applicazione WCFCustomMessageProcessing

  • In alternativa, ecco i passaggi manuali per configurare l'applicazione senza usare il file C:\WCFCustomMessageProcessing\bindings.xml . Non è necessario eseguire questa procedura se il precedente processo di importazione del file di associazione è stato completato correttamente. Risulta comunque utile consultare questa sezione per acquisire ulteriori informazioni sul comportamento del file MSI.

  • Creare una porta di ricezione unidirezionale (NetTcpRP) e una posizione di ricezione (NetTcpRL).

    1. Espandere l'applicazione WCFCustomMessageProcessing , fare clic con il pulsante destro del mouse su Porte di ricezione, scegliere Nuovo e selezionare Porta di ricezione unidirezionale. Nella finestra di dialogo Proprietà porta di ricezione immettere NetTcpRP per Nome e fare clic su OK.

    2. Fare clic con il pulsante destro del mouse sulla porta di ricezione NetTcpRP , scegliere Nuovo e selezionare Località di ricezione. Nella finestra di dialogo Proprietà località di ricezione immettere NetTcRL per Nome. Nella sezione Trasporto fare clic sulla casella di riepilogo a discesa Tipo , selezionare WCF-NetTcp dall'elenco a discesa e quindi fare clic su Configura.

    3. Nella scheda Generale immettere net.tcp://localhost/NetTcpRL/Image nel campo Address(URI).

    4. Nella scheda Sicurezza impostare Modalità di sicurezza su Nessuno.

    5. Nella scheda Messaggio selezionare l'opzione Percorso per il corpo del messaggio BizTalk in ingresso e immettere /*[local-name()="SendPicture" and namespace-uri()='http://tempuri.org/']/*[local-name()="stream"] per l'espressione del percorso del corpo. Selezionare Base64 come codifica del nodo. L'opzione Path è impostata sul valore perché il corpo del messaggio WCF che BizTalk Server riceve è nel formato seguente: <SendPicture xmlns="http://tempuri.org/"><stream>actual base 64 encoded binary image data</stream></SendPicture>

    6. Nella finestra di dialogo Proprietà posizione di ricezione fare clic su OK.

  • Creare una porta di trasmissione file unidirezionale (FileSP) sottoscritta alla porta di ricezione NetTcpRP.

    1. Fare clic con il pulsante destro del mouse su Porte di trasmissione, scegliere Nuovo e selezionare Porta di ricezione unidirezionale. Selezionare Porta unidirezionale statica. Immettere FileSP per Nome.

    2. Nella sezione Trasporto fare clic sulla casella di riepilogo a discesa Tipo , selezionare FILE dall'elenco a discesa e quindi fare clic su Configura.

    3. In Cartella di destinazione immettere C:\WCFCustomMessageProcessing\Oute fare clic su OK.

    4. Fare clic su Filtri, selezionare BTS.ReceivePortName == NetTcpRPe quindi fare clic su OK.

Configurare la porta di trasmissione ed eseguire l'applicazione

  1. Fare clic con il pulsante destro del mouse sull'applicazione WCFCustomMessageProcessing e scegliere Avvia. Verrà integrato l'indirizzo di ricezione NetTcpRL e verrà avviata la porta di trasmissione FileSP.

  2. In Visual Studio aprire il Client.sln file dalla cartella C:WCFCustomMessageProcessing\Client . In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto Client e scegliere Compila.

  3. In Visual Studio selezionare Debug e quindi selezionare Avvia senza eseguire debug per eseguire l'applicazione Client.exe. Verrà visualizzato un prompt dei comandi che indica che l'immagine è stata inviata a BizTalk Server.

  4. Osservare l'output del file {GUID}.jpg nella cartella del file di porta di trasmissione C:\WCFCustomMessageProcessing\Out. Ciò mostra che l'elaborazione dell'applicazione per estrarre il file JPEG e scriverla in una porta di trasmissione FILE completata correttamente.