Condividi tramite


Come gestire i contratti con errori tipizzati nelle orchestrazioni

In questo argomento viene descritto come gestire i contratti con errori tipizzati quando si utilizzano servizi WCF dalle orchestrazioni. Per gestire eccezioni di errore tipite nelle orchestrazioni, i servizi WCF che si utilizzano devono avere l'attributo FaultContractAttribute applicato alle operazioni del servizio; pertanto, gli errori possono essere generati usando FaultException<T> in cui T può essere qualsiasi contratto dati valido o un tipo serializzabile dai servizi WCF.

Procedure

Per gestire i contratti con errori tipizzati nelle orchestrazioni

  1. Nel progetto BizTalk di Microsoft Visual Studio, in Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto, scegliere Aggiungi e quindi fare clic su Aggiungi elementi generati.

  2. Nella finestra di dialogo Aggiungi elementi generati - <Nome> progetto, nella sezione Modelli selezionare Utilizza servizio WCF e quindi fare clic su Aggiungi.

  3. Nella pagina Creazione guidata servizio WCF BizTalk fare clic su Avanti.

  4. Nella pagina Origine metadati selezionare Endpoint MEX (Metadata Exchange) e quindi fare clic su Avanti.

  5. Nella pagina Endpoint metadati specificare l'URL per il servizio in esecuzione che fornisce metadati per il download tramite WS-Metadata Exchange o Http-Get, ad esempio http://localhost:8005. Per ottenere il documento dei metadati dall'URL, fare clic su Recupera. Se il servizio in esecuzione richiede credenziali utente con lo schema di autenticazione di base, fare clic su Modifica per aprire la finestra di dialogo Utilizzo guidata servizio WCF BizTalk in cui è possibile specificare il nome utente e la password da usare quando si accede al servizio in esecuzione. Fare clic su Avanti.

  6. Nella pagina Importa riepilogo metadati del servizio WCF esaminare le impostazioni. È possibile fare clic su Indietro per apportare modifiche. Fare quindi clic su Importa per creare gli artefatti e i tipi BizTalk da usare per l'utilizzo del servizio WCF.

  7. Nella pagina Completamento guidata servizio WCF BizTalk fare clic su Fine.

  8. Si supponga che il servizio WCF utilizzato generi l'eccezione di errore seguente:

    throw new FaultException<MyOperationException>(divideException);  
    

    L'operazione di errore sulla porta di invio prevede un messaggio di tipo MyOperationException, ma il messaggio di risposta WCF contiene l'intero corpo dell'errore. Pertanto, è necessario estrarre la parte MyOperationException dal messaggio configurando l'opzione corpo del messaggio BizTalk in ingresso nella finestra di dialogo Proprietà trasporto. Ad esempio,

    • Selezionare Percorso - contenuto situato in base al percorso del corpo.

    • Impostare l'espressione del percorso del corpo come illustrato di seguito:

      /*[local-name()='Fault']/*[local-name()='Detail']/* | /*[local-name()='DivideResponse']  
      
    • Selezionare Xml nell'elenco a discesa Codifica nodo .

  9. Nell'orchestrazione sarà necessario aggiungere un ambito e due gestori di eccezioni, Un gestore eccezioni è per l'operazione di errore, simile a MyOperationException illustrato nell'esempio precedente; l'altro gestore di eccezioni è destinato all'intercettamento di SOAPExceptions generico.

Vedere anche

Come generare eccezioni di errore da orchestrazioni pubblicate come servizi WCF
Come usare l'utilizzo guidato servizio WCF BizTalk per usare un servizio WCF