Condividi tramite


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
  1. Fare clic su Start e quindi su Esegui per aprire il prompt dei comandi di Windows.

  2. Digitare cmd nel campo Apri e quindi fare clic su OK.

  3. Utilizzare il comando CD per passare alla directory contenente il modello di osservazione da distribuire. Ad esempio, cd c:\businessprocess\Orders.

  4. 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.

  5. 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
  1. Fare clic su Start e quindi su Esegui per aprire il prompt dei comandi di Windows.

  2. Digitare cmd nel campo Apri e quindi fare clic su OK.

  3. Utilizzare il comando CD per passare alla directory contenente il file di configurazione dell'intercettore da distribuire. Ad esempio, cd c:\businessprocess\Orders.

  4. 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.

  5. 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
  1. Aprire il file App.config associato all'applicazione. È possibile utilizzare Notepad.exe o un altro editor di testo per questa attività.

  2. 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.

  3. 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'intercettazione PollingIntervalSec non verrà configurata.

  4. 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.

  5. Salvare il file App.config modificato e quindi riavviare l'applicazione.