Checkliste für Empfang von AS2-Nachrichten

Um über BizTalk-HTTP-Adapter AS2 Daten empfangen zu können, müssen gleich ein paar Einstellungen passen. Ein kleiner Überblick über die wichtigsten Einstellungen soll hiermit geschaffen werden:

  1. Virtuelles Verzeichnis für den Empfang der Nachrichten über HTTP
    • Local Path: Verzeichnis, in dem die Datei BTSHttpReceive.dll liegt, z.B. C:\Program Files\Microsoft BizTalk Server 2006\HttpReceive\ bzw. C:\Program Files\Microsoft BizTalk Server 20009\HttpReceive\
    • Execute permissions: Scripts and Executables
    • Identität des zugewiesenen Application Pools muss ein Benutzer sein, der Zugriff auf die BizTalk-Datenbank hat, in der Regel wird hier BTSIsolatedHostUser verwendet
    • In welcher Web Site das virtuelle Verzeichnis liegt (es kann natürlich auch die Web Site direkt verwendet werden) ist dabei egal. Allerdings sollte man bei mehreren Web Sites darauf achten, dass der virtuelle Pfad über alle Web Sites hinweg eindeutig ist, da man innerhalb der Receive Location die betroffene Web Site nicht mit angeben kann.
  2. Receive Port anlegen
    • Keine oder asynchrone MDN: One-Way
    • MDN synchron: Request-Response
  3. Receive Location anlegen
    • Type: HTTP-Adapter
      • Virtual directory plus ISAPI extension: z.B. /virtualDirectory/BTSHttpReceive.dll.
        Wie oben erwähnt, können die Web Sites des IIS hier nicht angegeben werden. Nur der virtuelle Pfad (ausgehend vom root-Verzeichnis)
      • Es kann ein beliebiger QueryString an die DLL angehängt werden. Damit können - mit nur einem virtuellen Verzeichnis - für verschiedene Kunden und/oder Dokument verschiedene Receie Locations definiert werden (an sich braucht man damit nur ein virtuelles Verzeichnis im IIS einrichten)
        Dieser Querystring muss exakt genauso auch im sendenden Programm angegeben werden (mit exakt ist Reihenfolge, Groß-Kleinschreibung und Umfang gemeint…).
      • Die Einstellung Suspend failed requests aktivieren
    • Receive Pipeline
      • AS2Receive: Wenn beliebige Daten per AS2 empfangen werden sollen
      • AS2EdiReceive: Wenn EDIFACT-Nachrichten per AS2 empfangen werden sollen
      • oder eine selbst-erstellte Pipeline, die die AS2 decoder-Component verwendet
  4. Sender-Party
    • Party Properties
      • Damit der Firmeneintrag beim Empfang der Datei gefunden werden kann, muss als EDIINT-AS2 From Value (AS2-From) der, zwischen den Partnern ausgemachte Name angegeben werden. Der Name sollte nur aus ASCII-Zeichen bestehen
      • AS2 Properties, Party as AS2 Message Sender
        • Hier kann man eigentlich alles auf Standard lassen (keine Checkbox aktiv). Damit gibt der Sender vor, wie die Datei zu behandeln ist.
      • Man kann den Sender auch zu bestimmten Einstellungen zwingen. Dazu die Checkbox Override inbound message properties aktivieren und die Einstellungen in der Gruppe Incoming AS2 message anpassen
      • Wenn die MDN signiert werden soll, dann kann das erreicht werden, indem die Checkbox Sign requested MDN if Disposition-Notification-Option header is not present or if Signed-Receipt-Protocol header is set to optional aktiviert werden. Der Sender darf das allerdings nicht ausschließen…
  5. Empfänger-Party (aktueller Rechner)
    Beim Empfänger ist in diesem Fall nicht viel Einstellbar. Hier geht es primär um die MDN, die versendet wird
    • Party Properties
      • Damit die Einstellungen der Firma verwendet werden können, muss als EDIINT-AS2 To Value (AS2-To)-Wert der zwischen den Partnern ausgemachte Name für den Empfänger angegeben werden
  6. Send Port oder Orchestration zum Verarbeiten der ankommenden Daten
    • Damit keine Fehlermeldung angezeigt wird, muss die Datei auch verabeitet werden - und das kann man nur erreichen, indem man entweder
      • den oben erstellen Receive Port einer Orchestration zuweist (BindingsInbound Logical Port), oder
      • einen Send Port erstellt und den Filter so anpasst, dass die ankommenden Nachrichten über diesen Port verarbeitet werden (z.B. über die Eigenshaft BTS.ReceivePortName)

Zugegeben, wirklich kurz ist die Liste nicht ;) Dennoch sind nur die notwendigsten Einstellungen beschrieben.

Falls die Nachrichten und MDNs signiert und/oder verschlüsselt werden sollen, hab ich im Artikel Wohin mit den AS2-Zertifikaten (Signieren und Verschlüsseln) entsprechende Einstellungen beschrieben.


Update: Punkt 6 hat zwar an sich nichts mehr mit dem Empfang der Daten zu tun, kam aber dennoch dazu, da der Punkt offenbar oft vergessen / übersehen wird (hat man mir berichtet).