Come configurare un'applicazione Windows Communication Foundation per l'intercettazione
È necessario installare il software di intercettatore BAM e configurare l'applicazione per l'uso del servizio di intercettore di Windows Communication Foundation (WCF) BAM prima di iniziare a raccogliere i dati dell'attività BAM. Si presuppone che sia stato installato correttamente BizTalk Server e le relative dipendenze e che sia stato creato almeno un gruppo BizTalk.
Installazione del software Gestione eventi BAM
Prima di poter configurare l'applicazione WCF per usare l'intercettatore BAM per WCF, è necessario installare il software BAM-Eventing usando il programma di installazione di BizTalk Server. Per altre informazioni sull'installazione del software BAM-Eventing e sulla registrazione dei contatori delle prestazioni, vedere Installazione del software BAM-Eventing.
Configurazione di un'applicazione WCF per il rilevamento
Quattro attività devono essere completate prima che l'applicazione WCF possa iniziare a scrivere informazioni sugli eventi BAM:
È necessario creare un modello di osservazione usando BizTalk Server strumenti BAM e quindi distribuiti usando lo strumento della riga di comando di BAM Manager (bm.exe).
Creare un file di configurazione dell'intercettore e distribuirlo utilizzando lo strumento da riga di comando Gestione BAM (bm.exe).
L'utente che esegue l'applicazione host deve essere membro del writer di eventi BAM appropriato (bam_<activity>_EventWriter) SQL Server ruoli per consentire all'applicazione di leggere le informazioni di configurazione dell'intercettatore e scrivere nelle attività BAM.
Modificare il file App.config per l'applicazione server e client per caricare il servizio di rilevamento BAM. Dopo la modifica del file App.config, riavviare l'applicazione.
Solo dopo che queste attività sono state completate, gli eventi inizieranno a essere visualizzati nel database BAM BizTalk Server.
Distribuzione di un modello di osservazione
Prima di distribuire un file di configurazione dell'intercettore o acquisire attività BAM nell'applicazione, è necessario distribuire un modello di osservazione.
Per distribuire un modello di osservazione tramite bm.exe
Fare clic su Start e quindi su Esegui per aprire il prompt dei comandi di Windows.
Digitare cmd nel campo Apri e quindi fare clic su OK.
Utilizzare il comando CD per passare alla directory contenente il modello di osservazione da distribuire. Ad esempio, cd c:\businessprocess\Orders.
Distribuire il modello di osservazione tramite bm.exe:
\Programmi (x86)\Microsoft BizTalk Server VERSION>Tracking\bm.exe <deploy-all -Definitionfile:<definitionfile.xml>
Assicurarsi di sostituire <definitionfile.xml> con il nome del file del modello di osservazione da distribuire. Per altre opzioni, vedere Comandi di gestione dell'intercettatore.
Nota
In un sistema che supporta il controllo dell'account utente, potrebbe essere necessario eseguire lo strumento con i privilegi amministrativi.
Digitare Esci e quindi premere INVIO per chiudere il prompt dei comandi.
Distribuzione di un file di configurazione dell'intercettore
Prima di acquisire attività BAM nell'applicazione, è necessario distribuire un file di configurazione dell'intercettore.
Per distribuire un file di configurazione dell'intercettore tramite bm.exe
Fare clic su Start e quindi su Esegui per aprire il prompt dei comandi di Windows.
Digitare cmd nel campo Apri e quindi fare clic su OK.
Utilizzare il comando CD per passare alla directory contenente il file di configurazione dell'intercettore da distribuire. Ad esempio, cd c:\businessprocess\Orders.
Distribuire il file di configurazione dell'intercettore tramite bm.exe:
\Programmi (x86)\Microsoft BizTalk Server VERSION>Tracking\bm.exe <deploy-interceptor -Filename:<icfile.xml>
Assicurarsi di sostituire <icfile.xml> con il nome del file di configurazione dell'intercettatore da distribuire.
Nota
È possibile usare il flag -Force:True per eseguire l'override delle origini eventi esistenti con lo stesso nome del file di configurazione dell'intercettatore. In tal caso, assicurarsi di eseguire il backup della configurazione esistente usando il comando get-interceptor . Se si utilizza il flag -Force:True, è possibile che vengano eliminate eventuali configurazioni dell'intercettore che fanno riferimento alle origini eventi sovrascritte.
Nota
In un sistema che supporta il controllo dell'account utente, potrebbe essere necessario eseguire lo strumento con i privilegi amministrativi.
Digitare Esci e quindi premere INVIO per chiudere il prompt dei comandi.
Se l'applicazione WCF è già stata distribuita, la nuova configurazione non verrà caricata fino all'intervallo di polling successivo. Tuttavia, se si configura e si riavvia l'applicazione, la configurazione verrà prelevata immediatamente.
Aggiunta dell'utente al ruolo di attività BAM appropriato
Il framework dell'intercettore BAM utilizza ruoli SQL Server per attività per controllare l'accesso ad attività e a informazioni di configurazione. È necessario aggiungere l'account utente che esegue l'applicazione WCF al ruolo o ai ruoli di attività BAM appropriati nel database BAMPrimaryImport.
Configurazione dell'applicazione WCF per il caricamento del servizio di rilevamento BAM
Per configurare l'applicazione per il caricamento del servizio di rilevamento BAM, aggiungere alcune righe al file App.config per l'applicazione server o l'applicazione client.
Per abilitare il rilevamento BAM nel server WCF o nell'applicazione client, è necessario modificare il file di configurazione App.config in modo da includere un comportamento e un'estensione di comportamento aggiuntivi per l'endpoint e aggiungere un attributo di configurazione del comportamento. I formati dei modelli del servizio e del client sono simili.
Quando si configura l'applicazione WCF, tenere presente quanto segue. se nel file App.config sono stati definiti più comportamenti dell'endpoint BAM per la stessa applicazione, ovvero per lo stesso client o servizio, in BAM verranno eseguite le operazioni seguenti.
Se le stringhe di connessione sono diverse, BAM genererà un'eccezione.
Se risultano diversi solo gli intervalli di polling, BAM ne selezionerà uno e procederà normalmente. Non è possibile determinare in fase di progettazione quale intervallo verrà selezionato.
Nota
Se le stringhe di connessione sono uguali, ovvero fanno riferimento allo stesso computer, l'elaborazione BAM procederà normalmente.
L'esempio seguente App.config modello è configurato per un'applicazione server WCF. Definisce un endpoint che usa un comportamento personalizzato "bamEndpointBehavior" configurato per l'uso dell'intercettatore WCF.
<system.serviceModel>
<services>
<service name="Service.CreditCardAuthorization">
<!-- The endpoint will use the "bamEndpointBehavior" -->
<endpoint address="http://localhost:8081/CreditCardService" contract="Service.ICreditCardAuthorization" name="CreditCardEndPoint" binding ="wsDualHttpBinding" bindingConfiguration="wsDualHttpBinding_ICreditCardAuthorization" behaviorConfiguration="bamEndpointBehavior"/>
</service>
</services>
<bindings>
<wsDualHttpBinding>
<binding name="wsDualHttpBinding_ICreditCardAuthorization" transactionFlow="true" />
</wsDualHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<!-- Define a new behavior named "bamEndpointBehavior" -->
<behavior name="bamEndpointBehavior">
<BamEndpointBehaviorExtension ConnectionString="Initial Catalog=BamPrimaryImport;Data Source=MyMachine;Integrated Security=SSPI;" InterceptorConfigurationPollingInterval="1500" />
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<!-- Define a new enpoint behavior extension using WCF interceptor -->
<add name="BamEndpointBehaviorExtension" type="Microsoft.BizTalk.Bam.Interceptors.Wcf.BamEndpointBehavior, Microsoft.BizTalk.Bam.Interceptors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
Prima di utilizzare questo modello nel file App.config, sarà necessario apportare alcune modifiche minime.
Per utilizzare questo modello nel file App.config del servizio WCF
Aprire il file App.config associato all'applicazione. È possibile utilizzare Notepad.exe o un altro editor di testo per questa attività.
Aggiungere l'estensione del comportamento WCF BamEndpointBehavior all'elemento
extensions
usando il codice XML seguente:<behaviorExtensions> <add name="BamEndpointBehaviorExtension" type="Microsoft.BizTalk.Bam.Interceptors.Wcf.BamEndpointBehavior, Microsoft.BizTalk.Bam.Interceptors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </behaviorExtensions>
Nota
Il nome dell'estensione del comportamento è "BamEndpointBehaviorExtension" e può essere modificato in base alle esigenze dell'ambiente specifico.
Aggiungere un nuovo comportamento dell'endpoint che usa la nuova estensione del comportamento all'elemento
behaviors
usando il codice XML seguente. L'estensione del comportamento fornisce una stringa di connessione e un intervallo di polling in secondi.<endpointBehaviors> <behavior name="bamEndpointBehavior"> <BamEndpointBehaviorExtension ConnectionString="Initial Catalog=BamPrimaryImport;Data Source=MyMachine;Integrated Security=SSPI;" InterceptorConfigurationPollingInterval="1500" /> </behavior> </endpointBehaviors>
Sostituire l'origine dati con il nome del computer che ospita il database BamPrimaryImport nell'ambiente in uso. Modificare l'intervallo di polling in base alle proprie esigenze; un numero maggiore indica che l'intercettatore WCF richiederà più tempo per rilevare le modifiche di configurazione. Se il nome dell'estensione del comportamento è stato modificato, utilizzare tale nome per sostituire "BamEndpointBehaviorExtension".
Nota
Il nome del comportamento è "bamEndpointBehavior" e può essere modificato in base alle esigenze dell'ambiente specifico.
Nota
Evitare di usare una combinazione di nome utente/password cleartext quando si specifica
ConnectionString
. Tale combinazione potrebbe compromettere il server database.Nota
È necessario specificare un
PollingIntervalSec
valore maggiore o uguale a 5 (secondi). Se si specifica un valore inferiore o si omette l'elemento, verrà generato un errore e l'intercettazionePollingIntervalSec
non verrà configurata.Aggiungere l'attributo all'endpoint
behaviorConfiguration
che verrà monitorato e specificare il nome del nuovo comportamento:<endpoint address="http://localhost:8081/CreditCardService" contract="Service.ICreditCardAuthorization" name="CreditCardEndPoint" binding ="wsDualHttpBinding" bindingConfiguration="wsDualHttpBinding_ICreditCardAuthorization" behaviorConfiguration="bamEndpointBehavior"/>
Nota
Se è stato utilizzato un nome diverso per il comportamento, specificare tale nome.
È possibile applicare la configurazione del comportamento a più endpoint.
Salvare il file App.config modificato e quindi riavviare l'applicazione.