CONNECTED Conference 2023 - Aufzeichnungen jetzt hier verfügbar +++                     

Suche

über alle News und Events

 

Alle News

 

Für Entwickler, Architekten, Projektleiter und...

Weiterlesen

In der Welt der Softwareentwicklung ist die...

Weiterlesen

QUIBIQ spendet für den guten Zweck – und für...

Weiterlesen

Eine bestimmte Antwort auf einen HTTP Request zu...

Weiterlesen

In einer Welt, die von stetigem Wandel geprägt...

Weiterlesen

In einem unserer Kundenprojekte, war das Ziel eine...

Weiterlesen

QUIBIQ Hamburg wird mit dem Hamburger...

Weiterlesen

Zwei Tage lang wurde vom 14.-15.11 wieder das...

Weiterlesen

Was ist ein Excel-Plugin – und wann ist es...

Weiterlesen

Wir expandieren, bringen Kunden und Talente besser...

Weiterlesen

How-to: SOAP with Attachments (SWA) via Azure

Ein Kunde hat eine Möglichkeit gesucht PDFs aus seinem Netz an eine alte SOAP-Schnittstelle zu verschicken. Gelöst wurde das ganze über einen ServiceBus, der die Dateien entgegennimmt, die von einem On-Premises BizTalk Server abgelegt werden. Der Service Bus leitet die PDF an eine Logic-App weiter. Die Logic App ruft eine Function auf, welche die PDF- Dateien an eine SOAP-Nachricht hängt und per SOAP versendet.

SOAP ist eine solide und etablierte Möglichkeit für Austausch von Nachrichten über ein Rechnernetz. Der SOAP-Service, der die Nachrichten und PDFs entgegennehmen sollte, war eine alter SOAP-Service, der in der Lage war SOAP with Attachments entgegen zu nehmen. Das bedeutet, dass die Dateianhänge (ähnlich wie bei einer E-Mail) an eine SOAP-Nachricht angehängt werden.

Um SOAP Nachichten mit Dateianhängen via Azure zu verschicken gab es folgende Probleme zu bewältigen:

  1. Azure bietet keinen SOAP-Connector (Stand März 2017)
  2. WCF “Out of the Box” unterstützt „SOAP with Attachments“ nicht

Aus diesen Gründen musste man eine Lösung hierfür selbst implementieren. Glücklicherweise hatte schon jemand dieses „WCF mit SOAP- Attachments“-Problem und hat dafür Code bereitgestellt.

Link: https://code.msdn.microsoft.com/Send-Soap-with-Attachments-3784e5f6

Dieser Code wurde verwendet und in eine Wrapper-Klasse gepackt. Die Klasse enthält eine statische Methode namens CallService. Die Methode CallService erhält folgende Parameter:

 

  • fileId  (Hiermit wird die Datei eindeutig identifiziert)
  • attachment (die Datei als String)
  • url (wird verwendet um den Endpunkt zu bestimmen)

 

Mit dieser Implementierung war es nun möglich aus einer .NET- Anwendung „SOAP with Attachments“ zu verschicken, aber noch nicht aus der Cloud.  Problem mit den Attachments war hiermit gelöst. Nun musste man nur noch diese Methode in die Cloud heben.

Um diesen Aufruf aus der Cloud zu realisieren musste man nun die Assembly in die Cloud bringen um die Methode CallService aus einer Function aufzurufen.

Es wird eine Function App in Azure um die DLL hochzuladen. Nachdem man die Function App erstellt hat, hat man die Möglichkeit unter „Platform features“ und „Advanced Tools“ die Assembly hochzuladen.

 

 

Man hat mit „Advanced Tools“ die Möglichkeit Dateien hochzuladen. Hierzu legt man einen bin-Ordner an und verschiebt die Assembly per Drag-and-Drop in das Verzeichnis.

 

 

 

Nachdem Hochladen der Assembly kann man diese nun referenzieren, wie eine .NET- Assembly. In einer Function fügt man DLLs mit „#r“ (siehe Screenshot) hinzu und wie gewohnt die using-Direktive.

 

Alternativ ist es auch möglich Functions im Visual Studio zu entwickeln und zu deployen. Dann werden die DLLs beim Deployment aus dem Visual Studio in denselben Ordner hochgeladen.

In der Function kann nun die Call-Service Methode aufgerufen werden aus der Cloud heraus. Das Problem die Methode in die Cloud zu heben war hiermit auch gelöst.

 

Nachdem die Function erstellt ist fehlt nur noch die Logic App, die für folgende Punkte verantwortlich ist:

 

  • PDF vom Service Bus abholen
  • PDF Metadaten auslesen (FileID)
  • Function aufrufen
  • Response der Function verarbeiten

 

Autor: Ugur K.

Ihre Kontaktmöglichkeiten

Sie haben eine konkrete Frage an uns


 

Bleiben Sie immer auf dem Laufenden


 

Mit meinem "Ja" erkläre ich mich mit der Verarbeitung meiner Daten zur Zusendung von Informationen einverstanden. Ich weiß, dass ich diese Erklärung jederzeit durch einfache Mitteilung widerrufen kann. Bei einem Nein an dieser Stelle erhalte ich zukünftig keine Informationen mehr.

© QUIBIQ GmbH · Impressum · Datenschutz