Condividi tramite


SubmitDirect (esempio di BizTalk Server)

L'esempio SubmitDirect illustra come inviare messaggi unidirezionali e di richiesta/risposta a livello di codice a Microsoft BizTalk Server da . Applicazioni basate su NET. L'esempio illustra l'uso di API BizTalk Server per le schede. Fornisce anche un adattatore di ricezione, denominato Submit, che può essere usato per inviare messaggi a BizTalk Server.

Prerequisiti

Prima di eseguire questo esempio, assicurarsi di avere effettuato l'accesso come utente appartenente al gruppo Utenti host BizTalk di tipo Isolato.

Scopo dell'esempio

In questo esempio viene illustrato come eseguire diverse attività correlate agli adapter BizTalk. In particolare viene descritto come eseguire le procedure seguenti:

  • Usare adattatori isolati eseguiti all'esterno del processo di BizTalk Server. L'adapter Submit è un adattatore isolato perché viene creato da un processo esterno al processo di BizTalk Server (viene avviato come applicazione .NET).

  • Inviare batch di messaggi a BizTalk Server. L'adapter Submit utilizza la funzionalità di invio messaggi in batch per inviare più messaggi alla volta.

  • Inviare messaggi in modalità sincrona utilizzando un paradigma di tipo richiesta/risposta, oltre che in modo asincrono utilizzando un paradigma unidirezionale.

  • Registrare un adattatore con BizTalk Server. In questo esempio viene descritto come registrare un adapter e viene fornito un eseguibile di registrazione per automatizzare la registrazione di un adapter.

    L'esempio è in effetti costituito da due esempi, come riportato di seguito:

  • Invio di un batch di messaggi unidirezionali. L'applicazione console SubmitMessages.exe accetta le stringhe dalla riga di comando e le invia come messaggio separato a BizTalk Server. Ognuno di questi messaggi inviati viene prelevato nel percorso di ricezione da BizTalk Server, inviato tramite ricezione pass-through e pipeline di invio e quindi scritto in un file di testo.

  • Invio di messaggi di tipo richiesta/risposta. L'applicazione console SubmitRequest.exe accetta il file .xml specificato nella riga di comando e lo invia a BizTalk Server. Lo schema di questo file .xml definisce gli elementi che contengono due campi integer. BizTalk Server preleva il file .xml ed elabora il file con un'orchestrazione (con una porta di richiesta/risposta). Utilizza una mappa per produrre un messaggio di risposta XML che restituisce un numero intero corrispondente al prodotto dei due valori interi contenuti nella richiesta. Quando l'applicazione console riceve la risposta, visualizza il risultato.

Percorso dell'esempio

<Percorso esempi>\AdaptersDevelopment\SubmitDirect\

Nella tabella seguente vengono elencati i file di questo esempio e ne viene descritto lo scopo.

File Descrizione
Cleanup.bat Annulla la distribuzione degli assembly e li rimuove dalla Global Assembly Cache (GAC); rimuove le porte di trasmissione e ricezione; rimuove le directory virtuali di Microsoft Internet Information Services (IIS) in base alle necessità.
Setup.bat Compila e inizializza l'esempio.
SubmitDirect.sln File di soluzione che include il progetto BizTalk nella cartella ProcessRequest e i progetti Microsoft Visual C# in altre cartelle.
SubmitMessagesBinding.xml, SubmitRequestBinding.xml Utilizzato per l'impostazione automatica, ad esempio il binding delle porte.
Nella cartella \ProcessRequest:

DocIn.xsd, DocOut.xsd, Multiplier.odx, Multiply.btm, ProcessRequest.btproj
Fornisce un progetto BizTalk che esegue la moltiplicazione di valori interi nello scenario di richiesta/risposta.
Nella cartella \SubmitMessages:

AssemblyInfo.cs, SubmitMessages.cs, SubmitMessages.csproj
Fornisce un progetto Visual C# per l'applicazione console che passa i relativi parametri stringa della riga di comando come batch di messaggi separati.
Nella cartella \SubmitRequest:

AssemblyInfo.cs, DocInstance.xml, SubmitRequest.cs, SubmitRequest.csproj
Fornisce un progetto C# per l'applicazione console che passa un file con estensione xml (DocInstance.xml) contenente due numeri interi da moltiplicare.
Nella cartella \TransportProxyUtils:

AssemblyInfo.cs, MessageHelper.cs, MessagingAPIInterface.cs, MessagingAPIs.cs, ResponseCallBack.cs, TpBatchAsyncCallback.cs, TpBatchAsyncResult.cs, TpBatchStatus.cs, TransportProxyUtils.csproj
Fornisce un progetto C# per la parte runtime dell'adapter Submit che implementa metodi per l'invio di messaggi in modalità sincrona e asincrona e per l'invio di messaggi di richiesta singoli e in batch.
Nella cartella \TransportProxyUtilsReg:

AssemblyInfo.cs, RegisterAdapter.cs, TransportProxyUtilsReg.csproj
Fornisce un progetto Visual C# che illustra il codice che è possibile usare per registrare gli adattatori con BizTalk Server.
Nella cartella \TransportProxyUtilsReg:

AssemblyInfo.cs, TransportProxyUtilsMgmt.cs, TransportProxyUtilsUI.csproj
Fornisce un progetto Visual C# per la parte dell'interfaccia utente dell'adapter Submit.

Compilazione e inizializzazione dell'esempio

Per compilare e inizializzare l'esempio SubmitDirect

  1. In una finestra di comando passare alla seguente cartella:

    <Percorso esempi>\AdaptersDevelopment\SubmitDirect

  2. Eseguire il file Setup.bat. Verranno eseguite le operazioni seguenti:

    • Creazione della cartella di input seguente per la parte di invio in batch di questo esempio.

      <Percorso esempi>\AdaptersDevelopment\SubmitDirect\Out

    • Compila i vari progetti di Visual Studio per questo esempio.

    • Registra l'adapter Submit con BizTalk Server.

    • Crea e associa i percorsi di ricezione BizTalk Server e le porte di trasmissione e ricezione.

      Nota

      Nell'esempio, durante la creazione e il binding delle porte vengono visualizzati i seguenti avvisi:

      Warning: Receive handler not specified for receive location "SubmitDirectRL"; updating with first receive handler with matching transport type.

      Warning: Host not specified for orchestration "Microsoft.Samples.BizTalk.ProcessRequest.Multiplier"; updating with first available host.

      È possibile ignorare tali avvisi. Per ovviare a possibili differenze di denominazione nelle installazioni utente, il nome host e il gestore di ricezione sono stati omessi dal file di associazione.

    • Abilitazione degli indirizzi di ricezione e avvio delle porte di trasmissione e dell'orchestrazione.

      Nota

      Prima di provare a eseguire l'esempio, è necessario verificare che BizTalk Server non abbia segnalato errori durante il processo di generazione e inizializzazione.

      Nota

      Se si sceglie di aprire e compilare i progetti dell'esempio senza eseguire il file Setup.bat, è necessario creare innanzitutto una coppia di chiavi con nome sicuro tramite l'Utilità Nome sicuro di .NET Framework (sn.exe) e utilizzarla per firmare gli assembly risultanti.

      Nota

      Per annullare le modifiche apportate da Setup.bat, eseguire Cleanup.bat. È necessario eseguire Cleanup.bat prima di eseguire Setup.bat una seconda volta.

Esecuzione dell'esempio

Poiché nell'esempio viene utilizzato l'adapter File, è necessario che l'host BizTalk (BizTalkServerApplication) via in esecuzione. Utilizzare le procedure seguenti per eseguire l'esempio SubmitDirect.

Per eseguire la parte di invio in batch dell'esempio SubmitDirect

  1. In una finestra di comando passare alla seguente cartella:

    <Percorso esempi>\AdaptersDevelopment\SubmitDirect\SubmitMessages\bin\Debug

  2. Eseguire il file SubmitMessages.exe passando più stringhe nella riga di comando.

    Esempio: SubmitMessages msg1 msg2 msg3

  3. Osservare i più file di testo creati nella cartella di output Out. Questi file contengono le stringhe passate nella riga di comando, una per ogni file.

Per eseguire la parte di richiesta/risposta dell'esempio SubmitDirect

  1. In una finestra di comando passare alla seguente cartella:

    <Percorso esempi>\AdaptersDevelopment\SubmitDirect\SubmitRequest\bin\Debug

  2. Eseguire il file SubmitMessages.exe passando un nome file xml appropriato nella riga di comando.

    Esempio: SubmitRequest .. \.. \DocInstance.xml

  3. Osservare il messaggio di risposta XML, che contiene il risultato dell'operazione di moltiplicazione visualizzato nella console.

Commenti

È possibile utilizzare l'adapter Submit in altre applicazioni. È possibile usarlo da qualsiasi . Codice basato su NET per inviare messaggi al BizTalk Server a livello di codice. Per utilizzare questo adapter con il codice, attenersi alla procedura seguente:

Per utilizzare l'adapter di esempio con il codice

  1. Registrare l'adapter Submit con il BizTalk Server. Se è stato eseguito il file Setup.bat fornito con l'esempio, l'adapter dovrebbe essere già registrato e pronto per essere utilizzato. In caso contrario è possibile registrarlo compilando i progetti TransportProxyUtils.csproj, TransportProxyUtilsUI.csproj e TransportProxyUtilsReg.csproj e quindi eseguendo l'eseguibile prodotto dal progetto RegisterAdapter.exe.

    Importante

    Se si installa BizTalk in un computer a 64 bit, modificare tutte le istanze della voce del Registro di sistema HKEY_CLASSES_ROOT\CLSID\ in HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ nel file RegisterAdapter.cs .

  2. Creare una porta di ricezione con un indirizzo di ricezione che utilizza l'adapter Submit. Specificare l'indirizzo di ricezione. L'indirizzo può essere una qualsiasi stringa univoca negli indirizzi di ricezione utilizzati da questo adapter.

  3. Fare riferimento all'assembly Microsoft.BizTalk.SDKSamples.AdaptersDevelopment.TransportProxyUtils.dll nel progetto di Visual Studio.

  4. Inviare messaggi al BizTalk Server utilizzando uno o più dei metodi seguenti forniti da questo assembly.

    Metodo/i Descrizione
    SubmitMessage()

    BeginSubmitMessage()

    EndSubmitMessage()
    Metodi sincroni e asincroni per inviare un messaggio unidirezionale a BizTalk Server. L'indirizzo di ricezione a cui viene inviato il messaggio deve essere impostato nel contesto del messaggio.

    Viene restituito un valore booleano che indica lo stato dell'invio (riuscito/non riuscito).
    SubmitMessages()

    BeginSubmitMessages()

    EndSubmitMessages()
    Metodi sincroni e asincroni per inviare una matrice di messaggi unidirezionale a BizTalk Server. Gli indirizzi di ricezione a cui vengono inviati i messaggi devono essere impostati nel contesto dei messaggi.

    Viene restituito un valore booleano che indica lo stato dell'invio (riuscito/non riuscito).
    SubmitSyncMessage()

    BeginSubmitSyncMessage()

    EndSubmitSyncMessage()
    Metodi sincroni e asincroni per inviare un messaggio di richiesta a BizTalk Server. L'indirizzo di ricezione a cui viene inviato il messaggio deve essere impostato nel contesto del messaggio.

    Viene restituito il messaggio di risposta.
    CreateMessageFromString() Crea un oggetto messaggio BizTalk Server da una stringa e imposta la proprietà indirizzo della posizione di ricezione nel contesto del messaggio.

    Restituisce un oggetto messaggio BizTalk.
    CreateMessageFromStream() Crea un oggetto messaggio BizTalk Server da un flusso e imposta la proprietà indirizzo della posizione di ricezione nel contesto del messaggio.

    Restituisce un oggetto messaggio BizTalk Server.

    Per informazioni dettagliate sul parametro e sui tipi restituiti per questi metodi, vedere il file MessagingAPIInterface.cs nella cartella TransportProxyUtils.

Vedere anche

Esempi di adapter - Sviluppo
Registrazione di un adapter