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
DocToolkitOptionsaktivieren. - 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
ActivitySourceund einemMeter, beide mit dem NamenAnk.DocToolkit. - Der Zähler
doctoolkit.remote_image.fetcheszählt die Versuche nach Ergebnis:ok,scheme_refused,host_not_allowed,blocked_address,http_error,too_largeundfailed. - Wenn in Ihrer Ausgabe stillschweigend Bilder fehlen, sind
host_not_allowedundblocked_addressdie 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.
Installation
dotnet add package Ank.DocToolkitIn der DocToolkit-Dokumentation lesenNuGetGitHub