Vorgehensweise: Erstellen eines Programmablaufs zum dynamischen Routing an eine E-Mail-Adresse mithilfe einer LDAP-Abfrage
Zielsetzung
In diesem Abschnitt wird veranschaulicht, wie Sie eine Reiseroute erstellen, die eine E-Mail-Adresse über LDAP (Lightweight Directory Access Protocol) abfragt und dann mithilfe des BizTalk Server SMTP-Adapters eine E-Mail-Nachricht an den aufgelösten Endpunkt sendet.
In diesem Thema führen Sie die folgenden Schritte aus:
Erstellen Sie einen Routingzettel für die Reiseroute, um eine Nachricht mithilfe einer LDAP-Abfrage dynamisch weiterzuleiten.
Testen Sie die Reiseroute mithilfe der Beispielanwendung routey Test Client.
Voraussetzungen
Die Prozeduren in diesem Thema erfordern den Abschluss der Voraussetzungen für die Entwicklungsaktivitäten.
Auf dem Computer, auf dem Sie diesen Abschnitt abschließen, muss der Microsoft Active Directory-Verzeichnisdienst konfiguriert und ausgeführt werden (es ist nicht erforderlich, dass der Computer der Domänencontroller ist, aber er muss mit der Domäne verbunden sein). Außerdem muss ein SMTP-Server konfiguriert und ausgeführt werden. um das Ergebnis dieses How-to-Themas zu testen, benötigen Sie einen Client, mit dem Sie die vom ESB gesendete E-Mail überprüfen können.
In den Anweisungen in diesem Abschnitt wird eine organization namens Global Bank mit einer Domäne von globalbank.com mit einer Active Directory-Organisationseinheit namens Mitarbeiter vorausgesetzt, die einen Benutzer namens John Evans mit einer gültigen E-Mail-Adresse in seinem Profil enthält (zjohne@globalbank.com. B. ). Es ist nicht notwendig, diese Umweltfaktoren zu replizieren; Berücksichtigen Sie diese Faktoren jedoch, um diese Implementierung in Ihrer Umgebung neu zu erstellen, und ersetzen Sie nach Bedarf.
Schritte
So erstellen Sie ein DSL-Modell (Domain-Specific Language) der ESB-Reiseroute
Öffnen Sie in Visual Studio C:\HowTos\Patterns\Patterns.sln.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf das Projekt ReiserouteLibrary, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neue Reiseroute.
Geben Sie im Dialogfeld Neues Element hinzufügen den Namen LdapResolution in das Feld Name ein, und klicken Sie dann auf Hinzufügen.
So konfigurieren Sie die Eigenschaften der Reiseroute
Klicken Sie in Visual Studio auf die Entwurfsoberfläche von LdapResolution.itinerary. Konfigurieren Sie im ldapResolution-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie in der Dropdownliste Modellexporter auf XML-Reiseverlaufsexporter.
Klicken Sie im Abschnitt Extendereinstellungen neben der Eigenschaft Routey-XML-Datei auf die Schaltfläche mit den Auslassungspunkten (...).
Geben Sie im Dialogfeld XML-Datei auswählenden Namen C:\HowTos\Itineraries\LdapResolution in das Feld Dateiname ein, und klicken Sie dann auf Speichern.
Hinweis
Mit diesem Schritt können Sie die Reiseroute als XML an einen lokalen Dateispeicherort exportieren. Durch exportieren einer Reiseroute in einen lokalen Dateispeicherort und nicht in die Reiseplandatenbank, ermöglicht das Testen der Reiseroute mithilfe der ESB-Testclientanwendung. Sie schließen diesen Prozess weiter unten in diesem Thema ab.
So definieren Sie die Struktur der Reiseroute
Ziehen Sie aus der Toolbox ein On-Ramp-Modellelement auf die Entwurfsoberfläche. Konfigurieren Sie im OnRamp1-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie dann ReceiveNAOrder ein.
Klicken Sie in der Dropdownliste Extender auf Esb Extender on-Ramp( On-Ramp ESB Extender).
Klicken Sie in der Dropdownliste BizTalk-Anwendung auf Microsoft.Practices.ESB.
Klicken Sie in der Dropdownliste Empfangsport auf OnRamp.Itinerary.
Ziehen Sie aus der Toolbox ein Itinerary Service-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann rechts neben dem On-Ramp-Modellelement . Konfigurieren Sie im Eigenschaftenfenster ItineraryService1 die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie dann RouteMessageEmail ein.
Klicken Sie in der Dropdownliste Routey Service Extender auf Messaging Extender.
Hinweis
Diese Eigenschaft definiert, dass der Prozess in einer Pipeline (Messaging) stattfindet. Wenn der Prozess in einer Orchestrierung stattfindet, legen Sie alternativ die Eigenschaft Itinerary Service Extender auf Orchestration Extender fest.
Erweitern Sie in der Dropdownliste Container den Eintrag ReceiveNAOrder, und klicken Sie dann auf Empfangshandler.
Klicken Sie in der Dropdownliste Dienstname auf Microsoft.Practices.ESB.Services.Routing.
Klicken Sie mit der rechten Maustaste auf die Resolver-Auflistung des RouteMessageEmail-Modellelements , und klicken Sie dann auf Neuen Resolver hinzufügen. Konfigurieren Sie im Eigenschaftenfenster Resolver1 die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie ldapResolver ein.
Klicken Sie in der Dropdownliste Resolverimplementierung auf LDAP Resolver-Erweiterung.
Klicken Sie in der Dropdownliste Transportname auf SMTP.
Klicken Sie auf die Eigenschaft Transportstandort, und geben Sie {mail} ein.
Klicken Sie auf die SearchRoot-Eigenschaft, und geben Sie ou=Employees,dc=globalbank,dc=com ein.
Hinweis
Wenn Sie Ihre Umgebung nicht gemäß den Spezifikationen im Abschnitt "Voraussetzungen" eingerichtet haben, ersetzen Sie die Werte in der vorherigen Eigenschaft durch die Werte, die für Ihre Umgebung geeignet sind.
Klicken Sie auf die Filter-Eigenschaft , und ändern Sie den Wert dann in (&(objectClass=User)(|( givenName=john)))
Hinweis
Geben Sie den vorherigen Wert ein, um den vorhandenen Text zu ersetzen.
Klicken Sie in der Dropdownliste ThrowErrorIfNotFound auf True.
Klicken Sie im Eigenschaftenfenster auf die Eigenschaft Endpunktkonfiguration, und klicken Sie dann auf die Schaltfläche mit den Auslassungspunkten (...).
Klicken Sie im Dialogfeld Endpunktkonfiguration auf die Eigenschaft EmailBodyText , und geben Sie dann Order is ready to process ein.
Klicken Sie auf die From-Eigenschaft , und geben Sie dann ein orders@globalbank.com.
Klicken Sie auf die MessagePartsAttachment-Eigenschaft , und geben Sie dann 2 ein.
Klicken Sie auf die Subject-Eigenschaft , und geben Sie dann Order für {givenName} ein.
Konfigurieren Sie die Eigenschaften SMTPAuthentication, SMTPHost, UserName und Password mithilfe der Verbindungsinformationen für Ihre lokale Umgebung.
Klicken Sie auf OK , um das Dialogfeld Endpunktkonfiguration zu schließen.
Klicken Sie mit der rechten Maustaste auf den LdapResolver-Resolver , und klicken Sie dann auf Test Resolver-Konfiguration.
Überprüfen Sie im Ausgabefenster, ob der Antragsteller im aufgelösten EndpunktkonfigurationswertOrder for John ist, und überprüfen Sie dann, ob der aufgelöste Transportspeicherort die E-Mail-Adresse ist, johne@globalbank.comdie dem Konto des Benutzers in Active Directory zugeordnet ist (z. B. ).
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem ReceiveNAOrder-Modellelement in das Modellelement RouteMessageEmail .
Ziehen Sie aus der Toolbox ein Off-Ramp-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann rechts neben dem Modellelement RouteMessageEmail . Konfigurieren Sie im offRamp1-Eigenschaftenfenster die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie dann EmailNAOrderDoc ein.
Klicken Sie in der Dropdownliste Extender auf Off-Ramp ESB Extender.
Klicken Sie in der Dropdownliste BizTalk-Anwendung auf GlobalBank.ESB.
Klicken Sie in der Dropdownliste Port senden auf DynamicResolutionOneWay.
Ziehen Sie aus der Toolbox ein Itinerary Service-Modellelement auf die Entwurfsoberfläche, und platzieren Sie es dann zwischen dem Modellelement RouteMessageEmail und dem EmailNAOrderDoc-Modellelement . Konfigurieren Sie im Eigenschaftenfenster ItineraryService1 die folgenden Eigenschaften:
Klicken Sie auf die Name-Eigenschaft , und geben Sie sendPortFilter ein.
Klicken Sie in der Dropdownliste Reiseplanungsdienst-Extender auf Off-Ramp Extender.
Erweitern Sie in der Dropdownliste Off-Ramp den Eintrag EmailNAOrderDoc, und klicken Sie dann auf Handler senden.
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem RouteMessageEmail-Modellelement in das SendPortFilter-Modellelement .
Klicken Sie in der Toolbox auf Connector. Ziehen Sie eine Verbindung aus dem SendPortFilter-Modellelement auf das EmailNAOrderDoc-Modellelement .
So exportieren Sie das Modell für die Verwendung mit dem Reiseplantestclient
Klicken Sie in Visual Studio mit der rechten Maustaste auf die Entwurfsoberfläche der LdapResolution-Reiseroute , und klicken Sie dann auf Modell exportieren.
Hinweis
Die XML-Version der Reiseroute wird in Visual Studio geöffnet.
Speichern Sie alle Projektartefakte.
Navigieren Sie in Windows Explorer zu C:\HowTos\Itineraries, und beachten Sie die Erstellung Ihrer Reiserouten-XML (LdapResolution.xml).
So testen Sie die Reiseroute
Öffnen Sie die Programmtestclient-Beispielanwendung mithilfe der Verknüpfung, die während der Voraussetzungen für die Entwicklungsaktivitäten (C:\HowTos\ESB.Itinerary.Test.exe – Verknüpfung) erstellt wurde.
Deaktivieren Sie im Programmplantestclient das Kontrollkästchen WCF-Dienst verwenden , und klicken Sie dann auf Route laden.
Navigieren Sie im Dialogfeld Reiseroutendatei öffnen zu C:\HowTos\Itineraries. Wählen Sie LdapResolution.xmlaus, und klicken Sie dann auf Öffnen , um die Reiseroute zu laden.
Klicken Sie auf OK , um die Meldung Route erfolgreich geladen zu löschen.
Klicken Sie im Reiseplantestclient auf die Schaltfläche mit den Auslassungspunkten (...) neben dem Feld Nachricht laden .
Navigieren Sie im Dialogfeld Zu ladende XML-Dokument auswählen zu C:\HowTos. Wählen Sie NAOrderDoc.xmlaus, und klicken Sie dann auf Öffnen , um die Testnachricht zu laden.
Klicken Sie auf die Schaltfläche Anforderung übermitteln . Klicken Sie nach Abschluss des Tests auf OK , um die angezeigte Bestätigung zu schließen.
Öffnen Sie Microsoft Outlook Express (oder den E-Mail-Client Ihrer Wahl), und überprüfen Sie die Zustellung der Nachricht an die E-Mail von John Evans.
Weitere Ressourcen
Weitere Informationen finden Sie in folgenden verwandten Themen: