CustomComponent (esempio di BizTalk Server)
Nell'esempio CustomComponent viene illustrato come creare e utilizzare un componente della pipeline personalizzato in grado di modificare un messaggio inviato nel flusso. In questo esempio viene inoltre descritta la configurazione di un componente della pipeline personalizzato in Progettazione pipeline.
Scopo dell'esempio
Questo esempio implementa un componente della pipeline personalizzato che può prefissire o aggiungere stringhe al messaggio di input. BizTalk Server elabora il messaggio in modalità streaming, ovvero l'intero messaggio non viene mai caricato in memoria. Il componente della pipeline personalizzato viene illustrato in base alla sequenza di passaggi riportata di seguito:
BizTalk recupera un messaggio di testo da un file presente in una cartella specifica.
Il messaggio di testo viene inviato tramite una pipeline di ricezione contenente il componente personalizzato FixMsg. Il componente viene configurato per l'inserimento di una stringa all'inizio del messaggio.
Il messaggio di testo risultante viene inviato tramite una pipeline di trasmissione con il componente personalizzato FixMsg. Il componente viene configurato per l'aggiunta di una stringa alla fine del messaggio.
BizTalk Server scrive il messaggio di testo risultante in un file in una cartella specifica.
Percorso dell'esempio
<Percorso> esempi\Pipelines\CustomComponent\
Nella seguente tabella sono riportati i file inclusi nell'esempio e ne viene descritto lo scopo.
File | Descrizione |
---|---|
Cleanup.bat | Viene utilizzato per annullare la distribuzione degli assembly e rimuoverli dalla Global Assembly Cache. Consente inoltre di rimuovere porte di trasmissione e ricezione. Consente infine di rimuovere le directory virtuali di Microsoft Internet Information Services (IIS), se necessario. |
Input.txt | File di input di esempio. |
Setup.bat | Utilizzato per compilare e inizializzare l'esempio. |
Nella cartella \FixMsg: AssemblyInfo.cs, FixMsg.csproj, FixMsg.sln |
File di progetto, di soluzione e di informazioni sull'assembly per la parte dell'esempio relativa al componente della pipeline personalizzato. |
Nella cartella \FixMsg: FixMsg.cs |
Implementa le interfacce del componente della pipeline. |
Nella cartella \FixMsg: FixMsgStream.cs |
Implementa un wrapper per la classe System.IO.Stream , abilitando l'elaborazione del flusso di dati. |
Nella cartella \FixMsg: FixMsgDescription.cs |
Fornisce metodi per accedere ed eseguire il rendering delle risorse dell'interfaccia utente del componente in Progettazione pipeline. |
Nella cartella \FixMsg: FixMsg.resx |
Contiene descrizioni delle proprietà, un'icona e messaggi di errore. |
Nella cartella \PipelineComponentSample: PipelineComponentSample.btproj, PipelineComponentSample.sln |
File di progetto e di soluzione per la parte dell'esempio relativa al progetto BizTalk. |
Nella cartella \PipelineComponentSample: PipelineComponentSampleBinding.xml |
Utilizzato per l'impostazione automatica, ad esempio il binding delle porte. |
Nella cartella \PipelineComponentSample: FixMsgReceivePipeline.btp, FixMsgSendPipeline.btp |
BizTalk Server pipeline contenenti rispettivamente il componente della pipeline personalizzata FixMsg, per la ricezione e le pipeline di invio. |
Compilazione e inizializzazione dell'esempio
Per compilare e inizializzare l'esempio CustomComponent
In una finestra di comando passare alla seguente cartella:
<Percorso> esempi\Pipelines\CustomComponent
Eseguire il file Setup.bat. Verranno eseguite le operazioni seguenti:
Crea le cartelle di input (In) e output (Out) dell'esempio nella cartella:
<Percorso> esempi\Pipelines\CustomComponent
Compila e distribuisce i progetti di Visual Studio per questo esempio.
Creazione e binding dell'indirizzo di ricezione di BizTalk e delle porte di trasmissione e ricezione.
Nota
Nell'esempio, durante la creazione e il binding delle porte vengono visualizzati i seguenti avvisi:
Warning: Receive handler not specified for receive location "PCReceiveLocation"; updating with first receive handler with matching transport type.
Warning: Host not specified for orchestration "CustomComponent"; updating with first available host.
È possibile ignorare tali avvisi. Per ovviare a possibili differenze di denominazione nelle installazioni utente, il nome host e il gestore di ricezione sono stati omessi dal file di associazione.
Abilita l'indirizzo di ricezione e avvia la porta di trasmissione.
Nota
Prima di provare a eseguire l'esempio, è necessario verificare che BizTalk Server non abbia segnalato errori durante il processo di generazione e inizializzazione.
Nota
Se si sceglie di aprire e compilare i progetti dell'esempio senza eseguire il file Setup.bat, è necessario creare prima una coppia di chiavi con nome sicuro utilizzando l'utilità Nome sicuro di .NET Framework (sn.exe). Utilizzare questa coppia di chiavi per firmare gli assembly risultanti.
Nota
Per annullare le modifiche apportate da Setup.bat, è innanzitutto necessario arrestare e riavviare l'istanza dell'host dallo snap-in MMC Amministrazione BizTalk Server, Eseguire quindi Cleanup.bat. È necessario eseguire Cleanup.bat prima di eseguire Setup.bat una seconda volta.
Esecuzione dell'esempio
Per eseguire l'esempio CustomComponent
Incollare una copia del file di testo Input.txt nella cartella In.
Osservare il file di testo creato nella cartella Out. Questo file contiene il contenuto del file Input.txt con testo aggiuntivo inserito all'inizio (dalla pipeline di ricezione) e alla fine (dalla pipeline di invio). Il formato del nome di questo file è <MessageID.xml, dove <MessageID>> è il GUID generato per identificare in modo univoco il messaggio.
Commenti
Per visualizzare le pipeline preconfigurate in Progettazione pipeline, è possibile attenersi alla seguente procedura:
In Esplora soluzioni fare doppio clic su ReceivePipeline.btp per aprire la pipeline di ricezione in Progettazione pipeline. Si noti che il componente FixMsg viene inserito nella fase Convalida della pipeline di ricezione.
Fare clic sul componente FixMsg nella fase Convalida nell'area di progettazione. Nella finestra Proprietà è possibile visualizzare le proprietà di configurazione del componente della pipeline. Si noti che la proprietà PrependData è impostata su Data su Data su prepend nella stringa di ricezione della pipeline.
In Esplora soluzioni fare doppio clic su SendPipeline.btp per aprire la pipeline di trasmissione in Progettazione pipeline. Si noti che il componente FixMsg viene inserito nella fase Pre-Assembl della pipeline di invio.
Fare clic sul componente FixMsg nella fase Pre-Assembly nell'area di progettazione. Si noti che la proprietà AppendData è impostata su Data per aggiungere nella stringa della pipeline di invio.