Convertir des documents sur un serveur hors ligne en C#

DocToolkit n'accède pas au réseau, sauf si vous le lui demandez. Ce guide couvre ce qu'il ignore, comment l'option à activer est contrôlée, et comment voir une récupération refusée, sinon silencieuse.

Aucun socket par défaut

  • Par défaut, aucune conversion n'ouvre de socket.
  • Un <link rel="stylesheet"> n'est pas récupéré. Un <img src> qui pointe vers une URL est écarté, pas téléchargé.
  • Ce n'est pas un réglage par défaut qui pourrait dériver. C'est l'absence de tout chemin sortant, hormis un unique chargeur protégé.
  • 40 tests air-gap prouvent qu'aucune E/S réseau n'a lieu à l'exécution.

Activer les images distantes

  • Vous pouvez les activer appel par appel ou via DocToolkitOptions.
  • La protection est une liste d'autorisation, vérifiée avant toute tentative de connexion.
  • Une vérification d'adresse suit. Elle refuse le loopback, le link-local et toutes les plages privées.

Une récupération refusée est silencieuse

  • Une récupération refusée est silencieuse : l'image est ignorée et votre document est quand même généré avec succès.
  • Seule la récupération d'images distantes, sur activation, est instrumentée, avec un ActivitySource et un Meter, tous deux nommés Ank.DocToolkit.
  • Le compteur doctoolkit.remote_image.fetches compte les tentatives par résultat : ok, scheme_refused, host_not_allowed, blocked_address, http_error, too_large et failed.
  • Si des images manquent silencieusement dans votre résultat, host_not_allowed et blocked_address sont les deux compteurs qui vous disent pourquoi.
  • Seul l'hôte est enregistré, jamais l'URL, car une chaîne de requête contient couramment un jeton signé.

Ce qu'il ne fait pas

  • Les images distantes sont la seule option à activer. Le hors ligne est le comportement par défaut partout.
  • Sur un hôte air-gap, chaque image distante est ignorée de cette façon, donc une image manquante y est attendue.