Delen via


Schrijf een listener voor een Microsoft Azure-oplossing

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

In dit onderwerp wordt beschreven hoe u een listener schrijft die Microsoft Dynamics CRM 2015 berichten kan lezen en verwerken die zijn geplaatst op de Microsoft Azure Service Bus. U moet als voorwaarde wel leren hoe u een Microsoft Azure Service Bus listener schrijft voordat u de details over een Microsoft Dynamics 365 listener probeert te begrijpen. Zie de Azure Service Bus documentatie en voorbeeldcode voor meer informatie.

In dit onderwerp

Een wachtrijlistener schrijven

Schrijf listener in één of twee richtingen of een REST-listener

Berichten filteren

Een wachtrijlistener schrijven

Een berichtenwachtrij is een wachtplaats voor berichten die bij een eindpunt van een servicebus zijn ontvangen. Een wachtrijlistener is een toepassing die deze berichten in de wachtrij leest en verwerkt. Aangezien de servicebusberichten worden opgeslagen in een wachtrij, moet een listener niet actief luisteren om berichten in de wachtrij te ontvangen. Een wachtrijlistener kan worden gestart nadat berichten zijn aangekomen in de wachtrij en deze berichten nog steeds verwerkt. Andere types listeners die in de volgende sectie worden besproken, moeten actief luisteren of missen de kans om een bericht te lezen. Deze berichten kunnen voortkomen uit Microsoft Dynamics 365 of uit een andere bron. Bij het schrijven van een wachtrijlistener is het belangrijk om elke berichtkopactie te controleren om te bepalen of het bericht afkomstig is van Microsoft Dynamics 365.

U kunt een bericht vernietigend lezen met behulp van Ontvangen in de modus ReceiveAndDelete, waarbij het bericht wordt gelezen en verwijderd uit de wachtrij, of het bericht niet-destructief lezen met behulp van de modus PeekLock, waarbij het bericht wordt gelezen maar nog steeds beschikbaar is in de wachtrij. De voorbeeldcode van de continue wachtrijlistener in deze SDK voert een vernietigende lezing uit. Voor meer informatie over het lezen van berichten uit een wachtrij, zie Berichten ontvangen uit een wachtrij.

Een onderwerp is vergelijkbaar met een wachtrij maar implementeert een model voor publiceren/aanmelden. Een of meer listeners kunnen zich aanmelden bij het onderwerp en ontvangen berichten uit de wachtrij.Meer informatie:Wachtrijen, Onderwerpen en Abonnementen

Belangrijk

Permanente wachtrijen en onderwerpen worden ondersteund, maar wachtrijen van de berichtbuffer niet. Om deze contracten te gebruiken, moet u uw listenertoepassingen schrijven met behulp van Azure SDK versie 1.7 of 1.8.

Het gebruik van wachtrijen en onderwerpen in uw ontwerp van multisysteemsoftware kan leiden tot het loskoppelen van systemen. Als de listenertoepassing ooit niet beschikbaar is, loopt de berichtlevering van Microsoft Dynamics 365 nog steeds door en kan de listenertoepassing het wachtrijbericht blijven verwerken wanneer deze weer online is.Meer informatie:Wachtrijen, Onderwerpen en Abonnementen.

Een berichtbufferlistener bijwerken om persistente wachtrijen te gebruiken

In de volgende procedure staat een lijst met de algemene stappen die u moet doorlopen om een listenertoepassing bij te werken die berichten ophaalt van een berichtenbuffer naar een toepassing die berichten ontvangt van een persistente wachtrij.

  1. Op het Microsoft Azure portal en in dezelfde oplossing maakt u een wachtrij in hetzelfde pad als het pad voor de berichtbuffer.

  2. Installeer de Microsoft Azure SDK versie 1.7 of 1.8 op uw developmentcomputer.

  3. Werk de listenercode bij door klassen en methoden te verwijderen die zijn gekoppeld aan de berichtbuffer, en vervang deze vervolgens door QueueClient en Ontvangen. Gebruik de gewenste leesmodus: RetrieveAndDelete of PeekLock. Voor meer informatie over het lezen van berichten uit een wachtrij, zie Wachtrijen, onderwerpen en inschrijvingen.

  4. Maak de listenertoepassing.

Er zijn geen Microsoft Dynamics 365 configuratiewijzigingen nodig zolang het wachtrijeindpunt hetzelfde oplossingpad gebruikt dat de berichtbuffer gebruikte.

Schrijf listener in één of twee richtingen of een REST-listener

Naast de eerder beschreven wachtrijlistener, kunt u een listener schrijven voor drie andere servicebuscontracten die door Microsoft Dynamics 365 worden ondersteund: unidirectioneel, bidirectioneel, en REST. Een unidirectionele listener kan een bericht lezen en verwerken dat op de servicebus werd geplaatst. Een bidirectionele listener kan hetzelfde doen, maar kan ook een tekenreeks met informatie terugsturen naar Dynamics 365. Een REST listener is hetzelfde als de bidirectionele listener behalve dat deze werkt met een REST eindpunt. Houd er rekening mee dat deze listeners actief moeten luisteren op een service-eindpunt om een bericht te lezen dat over de servicebus wordt verzonden. Als de listener niet luistert wanneer Microsoft Dynamics 365 probeert om een bericht op de servicebus te plaatsen, wordt het bericht niet verzonden.

Het schrijven van een listener wordt gestructureerd rond wat gekend staat als ABC: adres, binding en contract. De volgende informatie identificeert de ABC's van een unidirectionele listener.

Nadat uw listener bij een eindpunt is geregistreerd, wordt de Execute methode van de listener opgeroepen wanneer een bericht wordt geplaatst op de servicebus, afkomstig van Microsoft Dynamics 365. De Execute methode retourneert geen gegevens van de methodeoproep. Voor meer informatie, zie het voorbeeld van een unidirectionele listener, Voorbeeld: Unidirectionele listener.

Een bidirectionele listener wordt op een gelijkaardige manier gecodeerd als een unidirectionele listener. De ABC's van een bidirectionele listener zijn als volgt:

Voor dit bidirectionele contract retourneert de methode Uitvoeren een rekenreeks van de methodeaanroep. Voor meer informatie, zie het voorbeeld van een bidirectionele listener, Voorbeeld: Tweerichtingslistener.

Een REST listener wordt op een gelijkaardige manier gecodeerd als een bidirectionele listener. De ABC's van een REST listener zijn als volgt:

Voor het REST contract retourneert de Execute methode een rekenreeks van de methodeoproep. Raadpleeg het REST listenervoorbeeld, Voorbeeld: REST-listener voor meer informatie. Merk op dat er in het REST listenervoorbeeld een exemplaar wordt gemaakt van WebServiceHost en niet van ServiceHost zoals in het voorbeeld met de bidirectionele listener.

Notitie

Als u de gebruiksklare (ServiceBusPlugin) plug-in met een bidirectionele of REST listener gebruikt, gebruikt de plug-in geen tekenreeksgegevens die de listener retourneert. Echter, een aangepaste Azure-bewuste invoegtoepassing kan deze informatie gebruiken.

Als u de listenervoorbeelden uitvoert, is het uitgeversgeheim waar u om wordt gevraagd de Microsoft Azure Service Bus beheersleutel. De WS2007 Federation HTTP binding gebruikt de "token"-modus en het WS-Trust 1.3 protocol.

Berichten filteren

Er wordt een eigenschappenverzameling met aanvullende informatie toegevoegd aan alle geregelde berichteigenschappen die worden verzonden vanuit Microsoft Dynamics CRM 2015 en CRM Online. De eigenschappenverzameling, beschikbaar met persistente wachtrij en onderwerpcontracteindpunten, bevat de volgende informatie.

  • Organisatie Url

  • Gebruiker-id aanroepen

  • Gebruikers-id initiëren

  • Logische naam entiteit

  • Aanvraagnaam

Deze informatie identificeert de organisatie, de gebruiker, de entiteit, en de berichtaanvraag die wordt verwerkt door Microsoft Dynamics 365 wat ertoe leidde dat het servicebusbericht werd geplaatst. Uw listenercode kan ervoor kiezen om een ontvangen bericht te verwerken op basis van deze informatie.Meer informatie:Voorbeeld: Meerdere aanvragen uitvoeren

Zie ook

Azure-extensies voor Microsoft Dynamics CRM 2015
Een aangepaste Azure-bewuste invoegtoepassing schrijven
Voorbeeld: persistente wachtrijlistener
Voorbeeld: Unidirectionele listener
Voorbeeld: Tweerichtingslistener
Voorbeeld: REST-listener
Verzenden van Microsoft Dynamics CRM 2015-gegevens over de Azure Service Bus

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht