Dokumente auf einem Offline-Server in C# konvertieren

DocToolkit greift nicht auf das Netzwerk zu, außer Sie verlangen es. Diese Anleitung behandelt, was es überspringt, wie das Opt-in gesteuert wird und wie Sie einen abgelehnten Abruf sehen, der sonst stumm bleibt.

Standardmäßig kein Socket

  • Standardmäßig öffnet keine Konvertierung einen Socket.
  • Ein <link rel="stylesheet"> wird nicht abgerufen. Ein <img src>, das auf eine URL zeigt, wird verworfen, nicht heruntergeladen.
  • Das ist keine Standardeinstellung, die sich mit der Zeit verschieben könnte. Es ist das Fehlen jedes ausgehenden Pfads, außer über einen einzigen abgesicherten Loader.
  • 40 Air-Gap-Tests belegen, dass zur Laufzeit keine Netzwerk-I/O stattfindet.

Opt-in für Remote-Bilder

  • Sie können das Opt-in pro Aufruf oder über DocToolkitOptions aktivieren.
  • Die Absicherung ist eine Allow-List, die geprüft wird, bevor überhaupt eine Verbindung versucht wird.
  • Danach folgt eine Adressprüfung. Sie lehnt Loopback, Link-Local und jeden privaten Bereich ab.

Ein abgelehnter Abruf bleibt stumm

  • Ein abgelehnter Abruf bleibt stumm: Das Bild wird übersprungen, und Ihr Dokument wird trotzdem erfolgreich erstellt.
  • Nur der Opt-in-Abruf von Remote-Bildern ist instrumentiert, mit einer ActivitySource und einem Meter, beide mit dem Namen Ank.DocToolkit.
  • Der Zähler doctoolkit.remote_image.fetches zählt die Versuche nach Ergebnis: ok, scheme_refused, host_not_allowed, blocked_address, http_error, too_large und failed.
  • Wenn in Ihrer Ausgabe stillschweigend Bilder fehlen, sind host_not_allowed und blocked_address die beiden Zähler, die Ihnen sagen, warum.
  • Nur der Host wird erfasst, nie die URL, weil ein Query-String regelmäßig ein signiertes Token enthält.

Was es nicht kann

  • Remote-Bilder sind das einzige Opt-in. Offline ist überall der Standard.
  • Auf einem Air-Gap-Host wird jedes Remote-Bild auf diese Weise übersprungen, ein fehlendes Bild ist dort also zu erwarten.