Verarbeiten einer eingehenden AS2-Nachricht
Die AS2-Empfangspipelines verarbeiten eine eingehende Nachricht über AS2. Die AS2EdiReceive-Empfangspipeline verarbeitet eine EDI-codierte Nachricht mit dem EDI-Disassembler. Die AS2Receive-Empfangspipeline verarbeitet eine nicht EDI-codierte Nachricht mit dem AS2-Disassembler. Die zwei Pipelines verarbeiten die Nutzlast der AS2-Nachricht und generieren eine abweichende MDN. Beide Empfangspipelines verarbeiten die AS2-Nachricht jedoch mit dem AS2-Decoder.
Wenn die AS2EdiReceivePipeline eine AS2-Nachricht mit einer EDI-Nutzlast verarbeitet, schließt sie die AS2-Verarbeitung der empfangenen Nachricht vor dem Ausführen der EDI-Verarbeitung ab. Wenn die Pipeline eine EDI-Bestätigung für die EDI-Nutzlast einer AS2-Nachricht generiert, muss sie die EDI-Bestätigung asynchron zurückgeben, da die Verbindung von der AS2-Antwort geschlossen wird.
Der Empfangsport
Ein HTTP-Empfangsport wird verwendet, um eine AS2-Nachricht mit einer EDI oder einer Nicht-EDI-Nutzlast zu empfangen. Wenn eine MDN synchron zurückgegeben werden muss, ist ein Anforderungsantwort-Empfangsport erforderlich.
Eine MDN kann synchron oder asynchron zurückgegeben werden. Dies wird durch den Disposition-notification-to-Header der AS2-Nachricht bestimmt, es sei denn, die Eigenschaft Vereinbarungseinstellungen für Validierung und MDN anstelle des Nachrichtenheaders verwenden ist auf der registerkarte unidirektionale AS2-Vereinbarung des Dialogfelds Vereinbarungseigenschaften ausgewählt. Wenn die Eigenschaft ausgewählt ist, wird die Art und Weise, wie der MDN zurückgegeben wird, durch die Eigenschaft Asynchrone MDN anfordern auf der Seite MdN-Einstellungen des Absenders auf der registerkarte unidirektionale AS2-Vereinbarung des Dialogfelds Vereinbarungseigenschaften bestimmt. Weitere Informationen finden Sie unter AS2-Nachrichten und MDN-Nachrichten.
Wenn die MDN synchron zurückgegeben wird, wird die MDN über den Sendeport des bidirektionalen Empfangsspeicherorts zurückgegeben. Diese MDN dient als HTTP-Antwort, z. B. eine 200OK, die einen erfolgreichen Empfang der Nachricht angibt.
Wenn die MDN asynchron zurückgegeben wird, muss die MDN über einen getrennten Sendeport zurückgegeben werden. Wenn ein dynamischer Sendeport verwendet wird, wird die MDN an die im Header "Disposition-notification-to" enthaltene Adresse gesendet.
Hinweis
Der bidirektionale Empfangsport zum Empfangen von AS2-Nachrichten darf nicht für den Empfang von MDN-Nachrichten verwendet werden. MDN-Nachrichten müssen an einem statischen unidirektionalen Empfangsport empfangen werden. Das Verwenden eines Anforderungsantwort-Empfangsports für eine asynchrone zurückgegebene MDN-Nachricht würde verhindern, dass eine Nachricht vom Typ "200OK" als Antwort auf die eingehende MDN zurückgegeben wird, wodurch unnötige Wiederholungen der MDN-Übertragung verursacht würden.
Funktionsweise der AS2-Empfangspipelines
Die AS2-Empfangspipeline führt folgende Schritte beim Verarbeiten einer eingehenden AS2-Nachricht aus:
Bestimmt die sendende Partei durch Abgleich des AS2-From Werts im AS2-Header der Nachricht mit dem Wert für AS2-From Liste auf der Seite Bezeichner der unidirektionale REGISTERKARTE AS2-Vereinbarung des Dialogfelds Vereinbarungseigenschaften . Wenn dies fehlschlägt, wird versucht, die sendende Partei durch eine Übereinstimmung mit der AS2-From-Kontexteigenschaft zu ermitteln, die für die eingehende Nachricht mit dem Namen einer Partei festgelegt ist. Wenn eine Übereinstimmung gefunden wird und die Eigenschaft Vereinbarungseinstellungen für Validierung und MDN anstelle des Nachrichtenheaders auf der registerkarte unidirektionale AS2-Vereinbarung des Dialogfelds Vereinbarungseigenschaften ausgewählt ist, verwenden BizTalk Server die as2-Eigenschaften, die der Vereinbarung für die Partei für die Verarbeitung der AS2-Nachricht zugeordnet sind. Wenn die Eigenschaft nicht ausgewählt ist, verwendet die Empfangspipeline die AS2-Header-Tags in der eingehenden Nachricht. Wenn die Vereinbarung nicht gefunden wird, bricht die Pipeline die Verarbeitung ab, hält die Nachricht an und löst eine Ausnahme aus.
Hinweis
Mit der Eigenschaft Vereinbarungseinstellungen für Validierung verwenden und MDN anstelle des Nachrichtenheaders können Sie überprüfen, ob eine eingehende Nachricht über Signatur-, Verschlüsselungs- und Komprimierungseigenschaften verfügt (wenn diese Eigenschaften in der Vereinbarung auf der Registerkarte Validierung der unidirektionalen Vereinbarung angegeben sind), und wenn nicht, die Nachricht angehalten und einen Fehler zu veröffentlichen. Diese Änderungen müssen mit der Vereinbarung sendenden Partei abgeglichen werden. Weitere Informationen finden Sie unter Konfigurieren von AS2-Eigenschaften.
Wenn die Vereinbarung für die sendende Partei ermittelt wird, aber beim Verarbeiten der AS2-Nachricht in der Empfangspipeline ein Fehler auftritt, legt die Pipeline der Kontexteigenschaft MessageDestination der AS2-Nachricht auf SuspendQueue fest. Die Empfangspipeline hält dann die Nachricht im MessageBox an. Die Empfangspipeline legt auch die
EdiIntAS.IsAS2FailedMessage
Kontexteigenschaft auf True fest. Wenn ein MDN aktiviert wird, indem mdn auf der Seite MdN-Einstellungen des Absenders auf der Registerkarte "Unidirektionale AS2-Vereinbarung" des Dialogfelds "Vereinbarungseigenschaften" festgelegt wird, gibt die Pipeline dann die entsprechende MDN an den Absender zurück. Die Pipeline versucht immer, eine MDN zurückzugeben, wenn diese angefordert wird.Bestimmt, ob es sich bei der Nachricht um ein Duplikat handelt, wenn auf der Registerkarte "Unidirektionale AS2-Vereinbarung" des Dialogfelds "Vereinbarungseigenschaften" auf der Seite Überprüfung die Option Auf doppelte Nachrichten innerhalb suchen ausgewählt ist. Doppelte Nachrichten werden ermittelt, indem die Werte AS2-From, AS2-To und Message-ID der eingehenden Nachricht mit Werten in zuvor empfangenen Nachrichten verglichen werden. Wenn alle drei Werte übereinstimmen, legt die Empfangspipeline den Wert der
EdiIntAs.IsAS2MessageDuplicate
Kontexteigenschaft auf true fest. Wenn auf der Seite Überprüfung auch die Option Doppelte Nachrichten anhalten ausgewählt ist, wird die Nachricht angehalten und ein Fehler protokolliert.Ruft den Dateinamen (sofern vorhanden) jeder Anlage ab und leitet diesen Wert weiter an die Kontexteigenschaften.
Eine Kopie der Nachricht (im Wire-Format) wird erstellt und in der Nichtabstreitbarkeits-Empfangsdatenbank gespeichert, sofern dies in den unidirektionalen AS2-Vereinbarungseigenschaften festgelegt ist.
Führt eine MIME-Verarbeitung durch, einschließlich dem Überprüfen der Signatur und Entschlüsseln der Nachricht (basierend auf den Headertags).
Dekomprimiert die empfangene Nachricht, wenn sie komprimiert ist.
Generiert eine HTTP-Antwort, die im synchronen Anforderungsantwort-Modus an die MDN angefügt oder im asynchronen Modus als eigenständige Antwort gesendet wird.
Generiert eine MDN-Antwort, wenn angefordert. Die Pipeline generiert einen MDN basierend auf den Vereinbarungseigenschaften, wenn die Eigenschaft Vereinbarungseinstellungen für Validierung und MDN anstelle von Nachrichtenheader verwenden festgelegt ist, oder aus Kontexteigenschaften, wenn diese Eigenschaft nicht festgelegt ist. Wenn die Konfigurationseinstellungen und die Header in der eingehenden Nachricht inkonsistent sind, generiert die Pipeline eine negative MDN.
Der EDI-Disassembler in der AS2EdiReceive-Empfangspipeline generiert eine EDI-Bestätigung, wenn die Nachricht EDI-codiert war und Bestätigungen aktiviert wurden. Die Pipeline leitet die EDI-Bestätigung an die MessageBox weiter, von der die durch einen dynamischen Sendeport abgerufen und asynchron gesendet wird. EDI-Bestätigungen werden immer asynchron über AS2-Transport gesendet, da entweder eine MDN oder eine HTTP-Antwort synchron gesendet wird.
Eine Kopie der MDN wird erstellt und in der Nichtabstreitbarkeits-Empfangsdatenbank gespeichert, sofern dies in den unidirektionalen AS2-Vereinbarungseigenschaften festgelegt ist.
Eine Kopie der decodierten Nachricht wird erstellt und in der Nichtabstreitbarkeits-Empfangsdatenbank gespeichert, sofern dies in den unidirektionalen AS2-Vereinbarungseigenschaften festgelegt ist.
Wenn ein AS2-Fehler auftritt, wird die empfangene Nachricht nicht weiter verarbeitet. Die Empfangspipeline generiert jedoch eine MDN-Antwort.
Weitere Informationen
Empfangen von AS2-Nachrichten in BizTalk Server
AS2-Nachrichten
MDN-Nachrichten