Problemi noti relativi agli intercettori WF e WCF BAM
In questa sezione vengono fornite informazioni su problemi noti che possono verificarsi durante l'utilizzo degli intercettori BAM per Windows Workflow Foundation o Windows Communication Foundation.
Intercettazione di un assembly WCF generato in modo dinamico ospitato in IIS
Quando un'applicazione Windows Communication Foundation incorporata, ad esempio un file del servizio che specifica l'origine dell'assembly, viene ospitata in IIS, l'assembly WCF verrà generato in modo dinamico, contrassegnato con un nome file arbitrario e inserito nella cartella temporanea asp.net. Poiché il file di configurazione dell'intercettore richiede informazioni di manifesto e poiché con tali file di configurazione non sono disponibili né caratteri jolly né altri metodi dinamici per specificare il manifesto, è necessario ricompilare il servizio e quindi generare il file di configurazione dell'intercettore oppure redistribuire tale file dopo la distribuzione di tutte le pagine Web asp.net contenenti codice WCF incorporato.
Utilizzo dell'intercettore BAM per Windows Workflow Foundation non supportato in Office e SharePoint Server
Durante l'inizializzazione del runtime WF, Office e Windows SharePoint Server non sono in grado di eseguire operazioni di lettura dal file di configurazione dell'applicazione. L'intercettore BAM per WF può quindi essere configurato per un'applicazione, ma non verrà caricato nel runtime del flusso di lavoro quando è ospitato in questi ambienti.
Blocco del servizio client all'avvio di una transazione distribuita
Se il servizio non partecipa alla transazione avviata dal client e quest'ultimo richiama il servizio dal contesto di un ambito di transazione, è possibile che si verifichi un deadlock, in particolare se vengono raccolti dati dal client prima della richiesta di trasmissione e dal servizio tramite la richiesta di ricezione per la stessa attività.
Per evitare questa situazione, è necessario specificare che il client non partecipa alla transazione. A tale scopo, dichiarare "Enlist = false" nell'attributo ConnectionString
relativo all'estensione di comportamento BAM nel file app.config del client, come illustrato di seguito.
<behavior name="bamClientBehavior">
<bamClientBehaviorExtension ConnectionString="Integrated Security=SSPI;Initial Catalog=BAMPrimaryImport;Data Source=.; Enlist=false" PollingIntervalSec="1500" />
</behavior>
Apertura del canale WCF prima dell'invio di un messaggio quando vengono utilizzati intercettori BAM
Quando l'intercettore BAM viene abilitato per WCF con il binding BasicHttp, il proxy deve chiamare proxy.Open() per aprire il canale in modo esplicito. Se il canale non viene aperto in modo esplicito, l'intercettazione BAM può avere esito negativo e generare un'eccezione.