Procedura dettagliata: Utilizzo dei servizi WCF con l'adapter WCF-BasicHttp
Nota
Per altre informazioni sugli adattatori, vedere Adapter in BizTalk Server.
Introduzione
In questa procedura dettagliata si utilizzerà un servizio Windows Communication Foundation (WCF) ospitato all'interno di Internet Information Services (IIS) usando la messaggistica BizTalk e l'adattatore di trasmissione WCF-BasicHttp. Questo adattatore usa l'associazione BasicHttpBinding per fornire un'implementazione dello stack di trasporto/protocollo compatibile con le versioni precedenti dei servizi Web per fungere da ponte tra microsoft BizTalk Server e le funzionalità WCF. Un'orchestrazione può essere associata a una porta di trasmissione che usa un adattatore WCF per chiamare un servizio WCF e sfruttarne le funzionalità all'interno dell'elaborazione aziendale logica.
L'adapter WCF-BasicHttp è costituito da un adapter di trasmissione e da uno di ricezione. In questo esempio si userà solo il lato di invio di questa scheda per effettuare richieste di servizio WCF tramite il protocollo HTTP a un servizio WCF. Per una porta di trasmissione Solicit-Response, l'adattatore di trasmissione invia a un servizio WCF e riceve una risposta di risultato. Al contrario, un adattatore di ricezione WCF consente di pubblicare e chiamare esternamente un'orchestrazione BizTalk Server da un'applicazione client WCF. Per altre informazioni, vedere Pubblicazione di Servizi WCF .
Al termine della procedura dettagliata sarà chiaro come completare le attività seguenti:
Da Microsoft Visual Studio usare il comando Distribuisci per distribuire gli assembly contenenti la soluzione BizTalk Server e il servizio WCF in un'istanza locale di BizTalk Server. Ciò consente di creare un'applicazione BizTalk popolata dagli assembly.
Da Visual Studio usare la Procedura guidata utilizzo servizio WCF BizTalk per generare gli schemi e i tipi di BizTalk Server necessari per utilizzare il servizio WCF. Viene inoltre generata un'orchestrazione vuota, che può essere utilizzata e associata a una porta logica. Questa orchestrazione viene compilata e distribuita insieme a schemi e tipi. Tuttavia, l'elaborazione del flusso di lavoro di orchestrazione è vuota in questo esempio e non viene usata in questo esempio perché si tratta semplicemente di uno scenario di messaggistica BizTalk Server puro.
Dalla console di amministrazione di BizTalk Server configurare il routing basato sul contenuto usando la porta di trasmissione WCF-BasicHttp. Verrà configurata l'intestazione SOAPAction che il servizio WCF di destinazione prevede di ricevere.
Dalla console di amministrazione di BizTalk Server configurare l'espressione di filtro per instradare tutti i messaggi di errore SOAP che un servizio WCF può inviare a una cartella di output.
Da Gestione Internet Information Services (IIS) configurare l'applicazione Web che ospita il servizio WCF per esporre i relativi metadati. Dopo l'abilitazione, la Creazione guidata utilizzo servizio WCF BizTalk può ottenere questi metadati per generare tipi e schemi per accedere al servizio WCF.
Prerequisiti
Per eseguire la procedura illustrata in questo esempio, verificare che nell'ambiente siano installati i prerequisiti seguenti:
Sia il computer che compila gli assembly ed esegue il processo di distribuzione, sia il computer che esegue l'esempio, richiedono Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 e Microsoft BizTalk Server.
Nel computer utilizzato per compilare gli assembly ed eseguire il processo di distribuzione è richiesto Microsoft Visual Studio.
Il computer che esegue l'esempio richiede gli adapter WCF e gli strumenti di amministrazione WCF. Queste sono le opzioni da installare durante l'installazione di Microsoft BizTalk Server.
Nei computer usati per eseguire attività amministrative, è necessario eseguire come account utente membro del gruppo BizTalk Server Administrators per configurare le impostazioni dell'applicazione BizTalk Server all'interno della console di amministrazione di BizTalk Server. Questo account utente deve inoltre essere membro del gruppo Administrators locale per poter eseguire la distribuzione delle applicazioni, la gestione delle istanze dell'host e altre attività che potrebbero rivelarsi necessarie.
In qualsiasi computer che richiede la funzionalità WCF, completare la procedura di installazione unica per gli esempi WCF in Procedura di installazione occasionale per gli esempi di Windows Communication Foundation.
Nel computer che esegue l'esempio e importa un'associazione o un file di .msi in BizTalk Server, verificare che l'host non sia un host attendibile o che l'importazione avrà esito negativo.
È necessario scaricare il codice della procedura dettagliata ed estrarlo nel computer. Questa procedura dettagliata fa parte dell'intero pacchetto della procedura dettagliata dell'adapter WCF. È possibile scaricare il fileWCFAdapterWalkthroughs.exe dal BizTalk Server Developer Center all'indirizzo https://go.microsoft.com/fwlink/?LinkId=194140.
Distribuire il servizio WCF di esempio
Eseguire il file diWCFBasicHttpSendAdapter.exe autoestraendo ed estrarre i file nella cartella C:\WCFBasicHttpSendAdapter .
Aprire C:\WCFBasicHttpSendAdapter\WCFBasicHttpSendAdapter.sln in Visual Studio.
In Esplora soluzioni espandere il progetto BasicHttpWCFServiceConsuming. Questo progetto è il servizio WCF che verrà chiamato dalla porta di trasmissione. Verrà ospitato in un ambiente host gestito mediante Internet Information Services (IIS). L'hosting in IIS utilizza l'attivazione basata su messaggi per gestire l'attivazione e la durata del servizio. Espandere App_Code e quindi aprire OrderProcess.cs da esaminare. Questo servizio WCF riceve i messaggi di richiesta di ordine tramite il metodo OrderRequest . Il file OrderProcess.cs contiene la defition dell'interfaccia e l'implementazione del servizio WCF. Restituisce semplicemente i messaggi di risposta dell'ordine tramite il metodo OrderResponse .
Esaminare il file OrderProcess.svc. Contiene solo una riga, che viene utilizzata per richiedere a IIS di attivare il servizio per un'applicazione client. L'attributo @ServiceHost usato per ospitare il servizio è un punto di estendibilità all'interno del modello di programmazione WCF. Un modello factory usa ServiceHostFactory per creare un'istanza di ServiceHost con un'istanza del servizio WCF per gestire le richieste in ingresso. La creazione di un'istanza di questa istanza è basata sulla proprietà ServiceBehaviorAttribute.ConcurrencyMode , che determina se un servizio supporta un thread, più thread o chiamate reentranti. La creazione di istanze è determinata anche dalla proprietà ServiceBehavior.InstanceMode , che determina se una sola istanza servirà a tutti i chiamanti (singleton), se verrà creata un'istanza per ogni chiamata (senza stato) o se verrà creata un'istanza per ogni sessione (con stato).
<%@ServiceHost language=c# Debug="true" Service="Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming.OrderProcessServiceType" %>
In Visual Studio, in Esplora soluzioni, aprire Web.config da esaminare. Se ospitato in IIS, un servizio WCF viene configurato usando un file Web.config anziché un file app.config come quando è ospitato in un'applicazione console.
Assicurarsi che l'attributo httpGetEnabled dell'elemento <serviceMetaData> sia impostato su
true
in modo che la Creazione guidata servizio WCF BizTalk possa utilizzare i metadati per il servizio.Assicurarsi che l'attributo mode dell'elemento <di sicurezza> sia impostato su Nessuno. Poiché questa procedura dettagliata usa la modalità di sicurezza Nessuno , l'applicazione Web che ospita questo servizio deve essere configurata per consentire l'accesso anonimo.
Poiché l'assembly Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming deve essere installato nella GAC, è necessario un file di chiave con nome sicuro per completare il processo di distribuzione. Fare clic con il pulsante destro del mouse sul progetto BasicHttpWcfServiceConsuming e quindi scegliere Proprietà. Nella pagina Proprietà fare clic su Firma e selezionare Firma l'assembly. Fare clic sulla freccia giù nell'elenco a discesa Scegliere un file di chiave con nome sicuro , fare clic su <Nuovo> e immettere
keyfile.snk
nella casella di testo Nome file chiave . Deselezionare Proteggi il file di chiave con una password e quindi fare clic su OK.In Esplora soluzioni fare clic con il pulsante destro del mouse su BasicHttpWcfServiceConsuming e quindi scegliere Ricompila.
Usando Esplora risorse, copiare il contenuto di C:\WCFBasicHttpSendAdapter\BasicHttpWCFServiceConsuming nella cartella C:\InetPub\wwwroot .
Configurare l'applicazione Web per ospitare il servizio WCF come indicato di seguito:
Fare clic sul pulsante Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
Creare un pool di applicazioni in cui verrà eseguito questo servizio. Fare clic con il pulsante destro del mouse su Pool di applicazioni, scegliere Aggiungi pool di applicazioni, immettere un nome per il pool di applicazioni e quindi fare clic su OK.
Espandere Pool di applicazioni, fare clic con il pulsante destro del mouse sul pool di applicazioni appena creato e quindi scegliere Impostazioni avanzate. Nella sezione Modello di processo immettere l'account che ha accesso ai database BizTalk Server nel campo Identità.
Espandere Siti, espandere Sito Web predefinito, fare clic con il pulsante destro del mouse su BasicHttpWCFServiceConsuming e quindi scegliere Converti in applicazione per creare un'applicazione Web per questo servizio WCF.
Nella finestra di dialogo Converti in applicazione fare clic su Seleziona per selezionare il pool di applicazioni creato in precedenza e quindi fare clic su OK.
In Visualizzazione funzionalità fare clic sull'icona Autenticazione e verificare che l'opzione Autenticazione anonima sia abilitata. Ciò supporta i servizi WCF con la modalità di sicurezza Nessuno .
Testare il servizio WCF pubblicato come segue:
In Gestione IIS espandere Siti Web e quindi BasicHttpWCFServiceConsuming.
In Gestione IIS fare clic con il pulsante destro del mouse su OrderProcess.svc nel riquadro destro e quindi scegliere Sfoglia. Verrà aperto Internet Explorer per visualizzare la pagina del servizio OrderProcessServiceType che indica che è stato creato un servizio WCF in esecuzione. La pagina include inoltre un indirizzo WSDL completo che è possibile copiare e utilizzare con lo strumento relativo ai metadati del servizio (svcutil.exe) per creare il codice proxy e un file di configurazione che è possibile utilizzare per sviluppare un'applicazione client per il servizio.
Copiare l'intero indirizzo WSDL negli Appunti del sistema. Non copiare la parte "svcutil.exe" :
http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc?wsdl
Aggiungere gli schemi e i tipi per l'adapter WCF-BasicHttp all'applicazione BizTalk di esempio
Poiché l'adattatore chiamerà il servizio WCF, necessita di informazioni da schemi e tipi su come effettuare tale chiamata a tale servizio usando i metadati. BizTalkApp fornisce gli artefatti per l'utilizzo del servizio WCF. In Visual Studio, in Esplora soluzioni fare clic con il pulsante destro del mouse su BizTalkApp, scegliere Aggiungi e quindi fare clic su Aggiungi elementi generati.
Nella sezione Modelli della finestra di dialogo Aggiungi elementi generati selezionare Utilizza servizio WCF e quindi fare clic su Aggiungi.
Nella pagina Configurazione guidata utilizzo servizio WCF BizTalk fare clic su Avanti. Questa procedura guidata leggerà i metadati e creerà schemi e tipi.
Nella pagina Origine metadati selezionare l'opzione endpoint MEX (Metadata Exchange) per utilizzare i metadati dall'URL copiato negli Appunti nella procedura precedente e quindi fare clic su Avanti.
Nella pagina Endpoint metadati incollare l'indirizzo WSDL completo copiato nella procedura precedente nell'elenco a discesa Indirizzo metadati e quindi fare clic su Ottieni per ottenere il documento di metadati per il servizio WCF di esempio. L'acquisizione dei metadati abilita il pulsante Avanti . Fare clic su Avanti per continuare.
Nella pagina Importa riepilogo metadati servizio WCF esaminare le impostazioni. In questa finestra di dialogo vengono visualizzati lo spazio dei nomi e i riepiloghi XSD e WSDL dei metadati da importare. Viene inoltre mostrato il percorso in cui i file dell'orchestrazione (con estensione odx), dei binding (con estensione xml) e dello schema (con estensione xsd) verranno scritti durante il processo di importazione. Fare clic su Importa per creare gli artefatti e i tipi BizTalk da usare per l'utilizzo del servizio WCF di esempio.
Nella pagina Completamento guidata servizio WCF BizTalk fare clic su Fine.
In Visual Studio, in Esplora soluzioni, il servizio WCF BizTalk che usa la procedura guidata genera i file seguenti:
File di orchestrazione OrderProcessServiceType.odx. In questa orchestrazione non sono disponibili fasi del flusso di lavoro. Tuttavia, è possibile aggiungerlo e associarlo alle porte logiche per usare il servizio WCF. Include i tipi importanti di BizTalk, ad esempio i tipi di porta e i tipi di messaggi multiparte, che vengono utilizzati in questo esempio. Per visualizzare queste informazioni, fare doppio clic sull'orchestrazione OrderProcessServiceType.odx . Fare clic su Visualizza, fare clic su Altre finestre e fare clic su Visualizzazione orchestrazione. Espandere Tipi, espandere Tipi di porta e quindi espandere IOrderProcess. Verrà visualizzato il metodo Submit . Espandere tale metodo e verranno visualizzati i tipi di porta OrderRequest e OrderResponse . Fare clic su ogni tipo di porta e visualizzare i campi Descrizione nel browser delle proprietà e visualizzare i diversi messaggi di input e output WSDL. Fare clic su Tipi di messaggio a più parti e visualizzare i tipi di messaggio OrderRequest e OrderResponse . Fare clic sui campi Descrizione e visualizzare i nomi dei messaggi WDSL per ogni tipo di messaggio.
Vengono generati due file di schema. Il primo file di schema (OrderProcessServiceType_biztalk_WCF_basichttpsendadapter_basichttpWCFserviceconsuming.xsd) definisce i tipi di messaggio usati dal servizio WCF di esempio. Usa il campo OrderID nelle chiamate OrderRequest e OrderResponse.
Il secondo file dello schema (OrderProcessServiceType_schemas_microsoft_com_2003_10_Serialization.xsd) viene esportato da DataContractSerializer per i tipi, gli elementi e gli attributi dello spazio dei nomi,
http://schemas.microsoft.com/2003/10/Serialization/
.Vengono generati due file di associazione, che verranno usati in seguito per creare l'applicazione BizTalk: OrderProcessServiceType.BindingInfo.xml e OrderProcessServiceType_Custom.BindingInfo.xml. Viene in genere utilizzato il file di associazione non personalizzato. Nei rari casi in cui è presente un elemento binding personalizzato, viene tuttavia utilizzato il file di associazione personalizzato. L'elemento binding personalizzato crea porte di trasmissione per le applicazioni. Fare doppio clic sul fileOrderProcessServiceType.BindingInfo.xmle cercare la riga di definizione SendPort e esaminare la porta di invio che verrà creata quando si importa questo file di associazione in BizTalk Server:
<SendPort Name="WCFSendPort_OrderProcessServiceType_ServiceEndpoint" … >
Questi file vengono usati per la porta di invio usando l'adattatore WCF per utilizzare il servizio WCF di esempio descritto nei metadati.
Distribuire la soluzione BizTalk di esempio, BizTalkApp
Distribuire l'applicazione BizTalk Server come indicato di seguito:
In Visual Studio, in Esplora soluzioni fare clic con il pulsante destro del mouse su BizTalkApp e quindi scegliere Proprietà .
Nella finestra Progetto Designer fare clic sulla scheda Distribuzione e quindi modificare la proprietà Server se si usa un server di database diverso per il database di gestione BizTalk Server. Assicurarsi che il nome dell'applicazione sia WCFBasicHttpSendAdapter.
In Visual Studio, in Esplora soluzioni fare clic con il pulsante destro del mouse su BizTalkApp e quindi scegliere Ricompilazione.
In Visual Studio, in Esplora soluzioni fare clic con il pulsante destro del mouse su BizTalkApp e quindi scegliere Distribuisci. In questo modo viene distribuito l'assembly Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp nel gaC e gli artefatti nell'applicazione BizTalk Server denominata WCFBasicHttpSendAdapter.
Configurare una porta di trasmissione WCF-BasicHttp nell'applicazione BizTalk come segue:
Fare clic su Start, scegliere Tutti i programmi, scegliere Microsoft BizTalk Server 20xx e quindi fare clic su BizTalk Server Amministrazione.
Nella console di amministrazione BizTalk Server espandere Gruppo BizTalk, espandere Applicazioni, fare clic con il pulsante destro del mouse su WCFBasicHttpSendAdapter, scegliere Importa e quindi fare clic su Associazioni.
Nella finestra di dialogo Importa associazioni passare alla cartella C:\WCFBasicHttpSendAdapter\BizTalkApp , selezionare OrderProcessServiceType.BindingInfo.xmle quindi fare clic su Apri. Si tratta di uno dei file di associazione creati in precedenza dal servizio WCF BizTalk . In questo modo viene creata la porta di trasmissione WCFSendPort_OrderProcessServiceType_ServiceEndpoint .
Nella console di amministrazione BizTalk Server espandere WCFBasicHttpSendAdapter e quindi fare clic su Invia porte.
Nel riquadro destro della console di amministrazione BizTalk Server fare doppio clic su WCFSendPort_OrderProcessServiceType_ServiceEndpoint, creato importando il file di associazione OrderProcessServiceType.BindingInfo.xml. Verrà visualizzata la finestra di dialogo Proprietà porta di invio .
Nella finestra di dialogo Proprietà porta di invio fare clic su Configura.
Nella scheda Generale esaminare il campo Address(URI) di
http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc
. Questo è l'indirizzo del servizio WCF ospitato in IIS che verrà chiamato dall'adattatore WCF-BasicHttp.Esaminare il contenuto della casella di testo intestazione/azione SOAP :
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Operation Name="Submit" Action="http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming/IOrderProcess/Submit" /> </BtsActionMapping>
Questo campo indica lo scopo del messaggio di richiesta HTTP SOAP in uscita. Viene utilizzato per chiamare l'operazione Submit nell'interfaccia IOrderProcess dallo spazio dei nomi Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming.
Nota
Il file di associazione generato dalla Creazione guidata servizio WCF BizTalk usa il formato di mapping delle azioni per la proprietà StaticAction . Quando si usa il routing basato sul contenuto per gli adattatori di invio WCF per inviare messaggi ai servizi WCF, è necessario impostare BTS. Proprietà operation nei componenti della pipeline per il formato di mapping delle azioni come campo da usare per il routing basato sul contenuto. In alternativa, è possibile utilizzare il formato di azione singola per il routing basato sul contenuto. In questa procedura dettagliata viene utilizzato il formato di azione singola. Per altre informazioni sul formato di azione singola e sul formato di mapping delle azioni, vedere la finestra di dialogo Proprietà trasporto WCF-BasicHttp, Invia, Generale nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.
Fare clic su OK due volte per tornare alla console di amministrazione BizTalk Server.
Creare una porta di ricezione statica unidirezionale e un indirizzo di ricezione FILE. Una porta di ricezione è un contenitore logico per uno o più indirizzi di ricezione. In questo caso verrà visualizzato un messaggio WCF di esempio che verrà selezionato dall'adapter File e quindi inviato al servizio WCF.
Nella console di amministrazione di BizTalk Server espandere WCFBasicHttpSendAdapter, fare clic con il pulsante destro del mouse su Porte di ricezione, scegliere Nuovo e quindi fare clic su Porta di ricezione unidirezionale.
Nella finestra di dialogo Proprietà porta di ricezione , nella casella di testo Nome digitare
WCFBasicSendAdapter.ReceivePurchaseOrder
e quindi fare clic su OK.Nella console di amministrazione di BizTalk Server fare clic con il pulsante destro del mouse su WCFBasicHttpSendAdapter.ReceivePurchaseOrder, scegliere Nuovo e quindi fare clic su Posizione di ricezione.
Nella finestra di dialogo Proprietà percorso di ricezione digitare nella casella
WCFBasicSendAdapter.ReceivePurchaseOrder.FILE
di testo Nome .Nella finestra di dialogo Proprietà percorso di ricezione , nella sezione Trasporto accanto a Tipo selezionare FILE dall'elenco a discesa e quindi fare clic su Configura.
Nella scheda Generale della finestra di dialogo Proprietà trasporto FILE digitare e quindi fare clic su OK nella scheda Generale nella casella
C:\WCFBasicHttpSendAdapter\OrderRequestIn
di testo Ricezione cartella.Nella finestra di dialogo Proprietà percorso di ricezione fare clic su OK.
Creare un filtro per instradare i messaggi verso la porta di trasmissione WCF-BasicHttp dall'indirizzo di ricezione FILE creato nel passaggio precedente. Un filtro associato a una porta ha una funzione analoga a quella di una clausola “where” di SQL, poiché se restituisce True il messaggio verrà trasmesso a tale porta.
Nella console di amministrazione BizTalk Server espandere WCFBasicHttpSendAdapter, fare clic su Invia porte e quindi fare doppio clic su WCFSendPort_OrderProcessServiceType_ServiceEndpoint.
Nella finestra di dialogo Proprietà porta di invio selezionare BTS nella scheda Filtri. ReceivePortName nel campo Proprietà digitare
WCFBasicSendAdapter.ReceivePurchaseOrder
nel campo Valore e quindi fare clic su OK. Questa espressione di filtro consente di instradare i messaggi in arrivo dalla porta di ricezione WCFBasicSendAdapter.ReceivePurchaseOrder a questa porta di trasmissione WCF-BasicHttp.
Creare due porte di trasmissione FILE per l'applicazione di esempio. La prima porta di invio invia messaggi di risposta di output alla porta FILE dal servizio WCF. La seconda porta di invio viene usata per gestire i messaggi di errore inviati dal servizio WCF destinato al client.
Nella console di amministrazione di BizTalk Server espandere WCFBasicHttpSendAdapter, fare clic con il pulsante destro del mouse su Invia porte, scegliere Nuovo e quindi fare clic su Porta di invio statica in modalità unidirezionale.
Nella finestra di dialogo Invia proprietà porta digitare nella casella
WCFBasicSendAdapter.SendPurchaseOrder.FILE
di testo Nome .Nella finestra di dialogo Invia proprietà porta , nella sezione Trasporto accanto a Tipo selezionare FILE dall'elenco a discesa e quindi fare clic su Configura.
Nella scheda Generale della finestra di dialogo Proprietà trasporto FILE digitare C:\WCFBasicHttpSendAdapter\OrderResponseOut e quindi fare clic su OK.
Nella finestra di dialogo Proprietà porta di invio selezionare BTS nella scheda Filtri. MessageType nel campo Proprietà digitare
http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse
nel campo Valore per specificare il tipo di messaggio di risposta dal servizio WCF di esempio e quindi fare clic su OK. Questa espressione di filtro instrada i messaggi di risposta dal servizio WCF di esempio a questa porta di invio FILE. La porta di trasmissione sottoscrive i messaggi di tipo OrderResponse, specificando tale tipo nella proprietà del filtro. Questo è il tipo di messaggio del messaggio di risposta dal servizio WCF.Nella finestra di dialogo Proprietà porta di invio fare clic su OK.
Nella console di amministrazione di BizTalk Server espandere WCFBasicHttpSendAdapter, fare clic con il pulsante destro del mouse su Invia porte, scegliere Nuovo e quindi fare clic su Porta di invio statica in modalità unidirezionale.
Nella finestra di dialogo Invia proprietà porta digitare nella casella
WCFAdapterErrorSend.FILE
di testo Nome .Nella finestra di dialogo Invia proprietà porta , nella sezione Trasporto accanto a Tipo selezionare FILE dall'elenco a discesa e quindi fare clic su Configura.
Nella scheda Generale della finestra di dialogo Proprietà trasporto FILE digitare **C:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut**, quindi fare clic su OK.
Nella finestra di dialogo Proprietà porta di invio selezionare WCF nella scheda Filtri. IsFault nel campo Proprietà digitare
True
nel campo Valore e quindi fare clic su OK. All'interno di un'applicazione è possibile rilevare un'eccezione o un errore controllando WCF. Proprietà IsFault del messaggio inviato di nuovo al chiamante. Questa proprietà verrà impostata su True se il messaggio inviato è un messaggio di errore SOAP. Questa espressione di filtro instrada i messaggi di errore dal servizio WCF di esempio a questa porta di invio FILE.
Specificare il nome host e i binding per l'applicazione di esempio come segue:
Nella console di amministrazione di BizTalk Server espandere WCFBasicHttpSendAdapter, espandere Orchestrazioni, fare clic con il pulsante destro del mouse su Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp.OrderProcessServiceTypeClient, fare clic su Proprietà, scegliere Associazioni, impostare Host su BizTalkServerApplication e quindi fare clic su OK per salvare la configurazione.
Testare la soluzione di esempio con l'adattatore di invio WCF-BasicHttp
Nella console di amministrazione BizTalk Server fare clic con il pulsante destro del mouse su WCFBasicHttpSendAdapter e quindi scegliere Avvia.
Nella finestra di dialogo Start fare clic su Avvia.
Nella console di amministrazione di BizTalk Server espandere Impostazioni piattaforma, espandere Istanze host, fare clic con il pulsante destro del mouse su BizTalkServerApplication o un'altra istanza host appropriata e quindi fare clic su Riavvia.
Aprire un prompt dei comandi, digitare iisreset per riciclare IIS e i relativi servizi dipendenti e quindi premere INVIO.
Al prompt dei comandi copiare C:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Sample.xml nella cartella C:\WCFBasicHttpSendAdapter\OrderRequestIn . Questo messaggio viene instradato alla porta di trasmissione WcfSendPort_OrderProcessServiceType_ServiceEndpoint statica Solicit-Response. Il lato di invio di questa porta di trasmissione bidirezionale chiama il metodo Submit nel servizio WCF ospitato in IIS. Il risultato viene restituito alla porta di risposta della porta di invio WcfSendPort_OrderProcessServiceType_ServiceEndpoint . La porta di trasmissione WCFBasicSendAdapter.SendPurchaseOrder.FILE ha una sottoscrizione che verrà attivata quando il tipo del messaggio è
http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse
. Riceverà il messaggio elaborato correttamente e lo scriverà nella cartella C:\WCFBasicHttpSendAdapter\OrderResponseOut .Controllare la cartella C:\WCFBasicHttpSendAdapter\OrderResponseOut per un messaggio di risposta dal servizio WCF.
Al prompt dei comandi C:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Invalid.xml alla cartella C:\WCFBasicHttpSendAdapter\OrderRequestIn . Questo messaggio contiene uno spazio dei nomi non valido in modo che il servizio WCF restituisca un messaggio di errore.
Controllare la cartella C:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut per un file XML contenente il messaggio di errore dal servizio WCF. Esaminare il < campo faultstring> che mostra la causa del messaggio di errore come corpo del messaggio di errore non valido.
Vedere anche
Procedura dettagliata: Pubblicazione di servizi WCF con l'adapter WCF-BasicHttpCome utilizzare la Procedura guidata utilizzo del servizio WCF BizTalk per utilizzare un servizio WCFspecificando il corpo del messaggio per gli adapter WCF