Leggere in inglese

Condividi tramite


SendMSMQMessage

Nell'esempio SendMSMQMessage viene illustrato come inviare un messaggio a una porta di Accodamento messaggi da un'applicazione basata su .NET. Fornisce inoltre istruzioni su come configurare Microsoft BizTalk Server per usare una posizione di ricezione MSMQ.

È necessario tenere presente che molte operazioni di Accodamento messaggi sono asincrone, Vale a dire, molte chiamate API MSMQ (ad esempio System.Messaging.MessageQueue.Send) tornano al chiamante prima che l'operazione richiesta sia stata completata completamente. In Accodamento messaggi è disponibile un meccanismo per inviare commenti e suggerimenti all'applicazione dopo il completamento dell'operazione. Questo meccanismo implica l'uso di una "coda di Amministrazione". MSMQ restituisce commenti e suggerimenti sotto forma di messaggio nella coda di Amministrazione. La coda di amministrazione alla quale Accodamento messaggi restituirà i commenti e i suggerimenti viene specificata quando viene eseguita la chiamata all'API di Accodamento messaggi originale. Ad esempio, quando si invia un messaggio usando l'API System.Messaging.MessageQueue.Send, l'applicazione può specificare il nome di una coda Amministrazione usando la proprietà del messaggio PROPID_M_ADMIN_QUEUE passata alla chiamata a System.Messaging.MessageQueue.Send. Anche se l'applicazione può ottenere un codice restituito correttamente nella chiamata System.Messaging.MessageQueue.Send, se l'operazione di invio del messaggio ha esito negativo, MSMQ scrive un messaggio a tale effetto per l'Amministrazione Coda specificata. Se l'applicazione non specifica una coda di amministrazione, in seguito all'errore di invio il messaggio viene perduto e non viene acquisita alcuna diagnostica. Di fatto, il messaggio viene rimosso senza lasciare traccia. In Accodamento messaggi sono diversi gli errori che possono dare origine a questo problema, ad esempio l'esecuzione di un invio non transazionale a una coda transazionale.

Nel contesto di questo esempio, è importante che il codice specifica un tipo di transazione nella chiamata a System.Messaging.MessageQueue.Send coerente con il supporto delle transazioni specificato per la coda a cui viene inviato il messaggio. In caso contrario e se non viene specificata alcuna coda di amministrazione (come in questo esempio), Accodamento messaggi elimina il messaggio inviato senza darne alcuna indicazione, ovvero senza che nessun codice di errore venga restituito all'applicazione, nessuna diagnostica venga scritta nel registro eventi e così via.

Percorso dell'esempio

<Esempi Path>\AdaptersUsage\SendMSMQMessage\

Nella seguente tabella sono riportati i file inclusi nell'esempio e ne viene descritto lo scopo.

File Descrizione
App.ico, AssemblyInfo.cs, SendMSMQMessage.csproj, SendMSMQMessage.sln Forniscono i file di progetto e di soluzione, nonché i file correlati per l'applicazione grafica semplice relativa a questo esempio.
Form1.cs, Form1.resx Specificare l'origine e i file di modulo di Microsoft Visual C#.NET per l'applicazione grafica semplice per questo esempio.

Modalità di utilizzo dell'esempio

È possibile usare il codice nell'applicazione grafica semplice inclusa in questo esempio come esempio di come inviare messaggi a percorsi di ricezione MSMQ all'interno di BizTalk Server da . Applicazioni abilitate per NET, ad esempio Microsoft Office, da pagine ASP.NET e così via.

Compilazione e inizializzazione dell'esempio

Per compilare il file eseguibile di esempio

  1. Usando Visual Studio, aprire il file di soluzione SendMSMQMessage.sln.

  2. Nel menu Compila scegliere Compila soluzione.

Configurazione di BizTalk Server e creazione della coda di Accodamento messaggi

Usare le procedure seguenti per configurare BizTalk Server e creare la coda MSMQ per l'esecuzione dell'esempio.

Per creare la coda MSMQ in Windows Server 2008 R2 o Windows Server 2008 SP2

  1. Fai clic sul pulsante Start, fai clic con il pulsante destro del mouse su Computer e quindi scegli Gestione.

  2. Espandere il nodo Funzionalità . Se Accodamento messaggi non è installato, fare clic con il pulsante destro del mouse su Funzionalità e scegliere Aggiungi funzionalità. Selezionare Accodamento messaggi, fare clic su Avanti e quindi su Installa per installare MSMQ nel sistema.

  3. Espandere il nodo Accodamento messaggi .

  4. Fare clic con il pulsante destro del mouse sul nodo Code private , scegliere Nuovo e quindi fare clic su Coda privata.

  5. In Nome coda immettere test. Assicurarsi che sia selezionata la casella di controllo Transazionale .

  6. Fare clic su OK.

Per creare la coda MSMQ in Windows 7 o Windows Vista SP2

  1. Fai clic sul pulsante Start, fai clic con il pulsante destro del mouse su Computer e quindi scegli Gestione.

  2. Espandere Servizi e applicazioni e quindi espandere il nodo Accodamento messaggi .

    Nota

    Se l'accodamento messaggi non è installato nel computer, passare a Programmi > e funzionalità Pannello di controllo >e quindi selezionare Attiva o disattiva le funzionalità di Windows. Controllare tutte le funzionalità in Microsoft Message Queue (MSMQ) Server e quindi fare clic su OK.

  3. Fare clic con il pulsante destro del mouse sul nodo Code private , scegliere Nuovo e quindi fare clic su Coda privata.

  4. In Nome coda immettere test. Assicurarsi che sia selezionata la casella di controllo Transazionale .

  5. Fare clic su OK.

Per configurare BizTalk Server

  1. Selezionare una cartella in cui ricevere i messaggi. Nei passaggi seguenti si presume che sia stata selezionata la cartella C:\Demo\Report, ma, in base alle necessità, è possibile adattare i passaggi per un'altra cartella.

  2. Aprire la Console di amministrazione BizTalk Server.

  3. Creare una nuova applicazione denominata MSMQSample.

  4. Fare clic con il pulsante destro del mouse su Porte di ricezione, scegliere Nuovo e quindi fare clic su Porta di ricezione unidirezionale.

  5. Nella finestra di dialogo Proprietà porta di ricezione immettere MyReceivePort nella casella Nome e quindi fare clic su OK.

  6. Fare clic con il pulsante destro del mouse su Posizioni di ricezione, scegliere Nuovo e quindi fare clic su Percorso di ricezione unidirezionale. Nella finestra di dialogo Seleziona porta di ricezione selezionare la porta di ricezione appena creata e fare clic su OK.

  7. Nella finestra di dialogo Proprietà posizione di ricezione digitare un nome per la porta di ricezione, ad esempio MSMQReceiveLocation.

  8. Nella finestra di dialogo Proprietà percorso di ricezione selezionare MSMQ per il tipo di trasporto.

  9. Fare clic su Configura per aprire la finestra di dialogo Proprietà trasporto MSMQ . Impostare Coda su localhost\private$\test, impostare Transazionale su Truee quindi fare clic su OK.

  10. Espandere l'applicazione, selezionare Invia porte, selezionare Nuova, selezionare Porta di invio statica in modalità unidirezionale.

  11. Nella finestra di dialogo Invia proprietà porta digitare un nome per la porta di trasmissione, ad esempio MySendPort.

  12. Impostare la proprietà Transport Type su FILE.

  13. Fare clic su Configura per aprire la finestra di dialogo Proprietà trasporto file .

  14. Nella finestra di dialogo Proprietà trasporto FILE impostare la proprietà Cartella di destinazione su C:\Demo\Report, mantenere le impostazioni predefinite per le altre proprietà e quindi fare clic su OK.

  15. Selezionare Filtri e quindi aggiungere una nuova riga impostando Proprietà su BTS. ReceivePortName. Lasciare impostata la colonna Operator su , impostare la colonna Value su ==MyReceivePort e quindi fare clic su OK.

  16. Fare clic con il pulsante destro del mouse sulla nuova porta di invio e quindi scegliere Enlist.

  17. Fare di nuovo clic con il pulsante destro del mouse sulla nuova porta di invio e quindi scegliere Avvia.

  18. Fare clic con il pulsante destro del mouse sul nuovo percorso di ricezione e quindi scegliere Abilita.

    A questo punto BizTalk Server è pronto per l'utilizzo dell'esempio.

Esecuzione dell'esempio

Utilizzare la procedura seguente per eseguire l'esempio SendMSMQMessage.

Per eseguire l'esempio

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

    <Esempi Path>\AdaptersUsage\SendMSMQMessage\bin\Debug

  2. Eseguire il file SendMSMQMessage.exe, da cui viene avviata l'applicazione grafica che fornisce l'interfaccia utente per questo esempio.

  3. Nella casella Nome computer BizTalk dell'applicazione grafica digitare il nome del computer locale.

  4. Provare l'opzione Invia wrapped :

    1. Facoltativamente, modificare il testo nella casella Corpo del messaggio .

    2. Fare clic su Invia wrapped.

      Se l'operazione ha esito positivo, verrà visualizzato quanto segue:

    • La parola Success viene visualizzata in tipo di carattere rosso nella casella immediatamente sopra i pulsanti.

    • Un file viene visualizzato nella cartella di destinazione C:\Demo\Reports. Questo file contiene il testo della casella Corpo del messaggio racchiuso in tag XML semplici dalla libreria di accodamento dei messaggi .NET.

      Se l'operazione ha esito negativo, verrà visualizzato un messaggio di errore nella casella immediatamente sopra i pulsanti.

  5. Provare l'opzione Invia esatta :

    1. Facoltativamente, modificare il testo nella casella Corpo del messaggio .

    2. Fare clic su Invia esatto.

      Se l'operazione ha esito positivo, verrà visualizzato quanto segue:

    • La parola Success viene visualizzata in tipo di carattere rosso nella casella immediatamente sopra i pulsanti.

    • Un file viene visualizzato nella cartella di destinazione C:\Demo\Reports. Questo file contiene il testo dalla casella corpo del messaggio esattamente come viene visualizzato nella casella di testo.

      Se l'operazione ha esito negativo, verrà visualizzato un messaggio di errore nella casella immediatamente sopra i pulsanti.

Vedere anche

Esempi di adapter - Uso