DoconutOptions

Διαμορφώστε τις υπηρεσίες Doconut

DoconutOptions (namespace Doconut) είναι το μοναδικό αντικείμενο διαμόρφωσης για ολόκληρο το SDK. Το διαμορφώνετε μία φορά, στην κλήση που περνάτε στο DoconutHost.Initialize στο Application_Start.

csharp
Doconut.DoconutHost.Initialize(options =>
{
    options.LicensePath     = HostingEnvironment.MapPath("~/wwwroot/Doconut.Viewer.lic");
    options.UnsafeMode      = false;
    options.ShowDoconutInfo = false;
    options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});

Ιδιότητες

ΤύποςΙδιότηταΠροεπιλογήΠεριγραφή
boolUnsafeModefalseΌταν false, το DocImage.axd εξυπηρετεί μια σελίδα μόνο στη συνεδρία ASP.NET που άνοιξε το έγγραφο (ή, σε φάρμα, στον περιηγητή με ένα υπογεγραμμένο εισιτήριο). Όταν true, εξυπηρετείται οποιοδήποτε αίτημα που μεταφέρει το διακριτικό. Αφήστε το false — δείτε Συνεδρίες & Ασφάλεια.
boolShowDoconutInfofalseΌταν true, ένα αίτημα DocImage.axd χωρίς διακριτικό απαντά Doconut <version> is running on <host> αντί για 404. Χρήσιμο ως έλεγχος καπνού· αφήστε το false στην παραγωγή.
stringResourcesPath"/doconut-res"Πρόθεμα URL υπό το οποίο το μοντέλο πόρων εξυπηρετεί τα ενσωματωμένα σενάρια, στυλ και εικόνες.
stringLicensePath""Πλήρης διαδρομή προς το αρχείο άδειας. Κενό → η επόμενη πηγή άδειας, έπειτα αυτόματη ανακάλυψη· αν δεν βρεθεί τίποτα → αξιολόγηση με υδατογράφημα χωρίς δυνατότητες.
stringLicenseContent""Ακατέργαστο περιεχόμενο άδειας (βάση δεδομένων, μεταβλητή περιβάλλοντος, αποθήκη μυστικών). Πρωταρχικό έναντι LicensePath.
Stream?LicenseStreamnullΆδεια ως ροή, διαβάζεται μία φορά κατά την εκκίνηση. Πρωταρχική έναντι και των άλλων πηγών.
stringMiddlewarePath"/doconut"Δεν χρησιμοποιείται από το System.Web. Το σημείο τέλους της σελίδας είναι πάντα ο χειριστής DocImage.axd που δηλώνεται στο Web.config. Η τιμή εξακολουθεί να επικυρώνεται κατά την εκκίνηση (δείτε παρακάτω).
boolResetLicensefalseΔεν χρησιμοποιείται. Η άδεια διαβάζεται μία φορά, στο DoconutHost.Initialize· επανακυκλώστε την ομάδα εφαρμογών μετά την αντικατάσταση μιας άδειας.
DoconutPluginRegistryPluginRegistry—Καταχωρητής μόνο για ανάγνωση των συνεισφορών plugin, γεμίζεται από AddPlugin<T>().

Προτεραιότητα άδειας: LicenseStream → LicenseContent → LicensePath → αυτόματη ανακάλυψη (δείτε Ρύθμιση Άδειας).

Μέθοδοι

AddPlugin<TPlugin>()

text
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()

Καταχωρεί ένα plugin (Converter, DICOM). Fluent — επιστρέφει το αντικείμενο επιλογών. Η Σχόλιο και η Αναζήτηση είναι ενσωματωμένες λειτουργίες με άδεια και δεν το χρησιμοποιούν.

Εάν καμία ενεργή άδεια δεν χορηγεί τη δυνατότητα του plugin, το DoconutHost.Initialize ρίχνει το InvalidOperationException από το Application_Start, και ο ιστότοπος απαντά σε κάθε αίτημα με ένα κενό 500 μέχρι να διορθωθεί· το μήνυμα βρίσκεται στο αρχείο καταγραφής συμβάντων των Windows (δείτε Σύστημα Plugin).

Add…Widget()

text
DoconutOptions AddConverterWidget(Action<ConverterWidgetOptions>? configure = null)

Τα ενσωματωμένα widgets είναι απενεργοποιημένα εξ ορισμού. Κάθε κλήση Add…Widget() ενεργοποιεί τα σημεία τέλους αυτού του widget στο DocImage.axd, και απαιτεί την αντίστοιχη plugin να είναι καταχωρημένη. Το μοντέλο πόρων εξυπηρετεί το script του widget είτε το έχετε ενεργοποιήσει είτε όχι, έτσι ένα widget που φορτώνει και σχεδιάζει αλλά απαντά 404 στην πρώτη του ενέργεια λείπει αυτή η κλήση. Το widget Converter τεκμηριώνεται στο Plugin Converter.

RegisterViewer(extension, factory, defaultConfig?)

text
DoconutOptions RegisterViewer(
    string extension,                    // \".myext\" — η αρχική τελεία είναι προαιρετική
    Func<IFormatViewer> factory,
    Func<BaseConfig>? defaultConfig = null)

Καταχωρεί έναν προσαρμοσμένο προβολέα για μια επέκταση αρχείου. Οι προσαρμοσμένοι προβολείς έχουν προτεραιότητα έναντι των ενσωματωμένων και των plugin προβολέων και δεν περιορίζονται από άδεια. Όταν το defaultConfig παραλείπεται και ένα έγγραφο ανοίγει χωρίς ρητή διαμόρφωση, χρησιμοποιείται ένα ImageConfig.

Ρίχνει ArgumentException (Extension must be a non-empty file extension.) για κενή επέκταση και ArgumentNullException για μηδενική factory.

Επικύρωση εκκίνησης

DoconutHost.Initialize επικυρώνει τις επιλογές πριν δημιουργηθεί οτιδήποτε:

text
DoconutOptions.MiddlewarePath must be a non-empty path starting with '/'.
DoconutOptions.ResourcesPath must be a non-empty path starting with '/'.
DoconutOptions.MiddlewarePath and ResourcesPath must be different paths.

MiddlewarePath ελέγχεται παρόλο που το System.Web δεν το χρησιμοποιεί ποτέ, οπότε αφήστε το στην προεπιλογή του. Όπως κάθε εξαίρεση που ρίχνεται από Application_Start, μια αποτυχία επικύρωσης εμφανίζεται ως κενό 500 σε κάθε αίτημα, με το μήνυμα στο αρχείο καταγραφής συμβάντων των Windows.

Κοινές ρυθμίσεις

csharp
// Παραγωγή: ρητή άδεια, όλα τα υπόλοιπα στην ασφαλή προεπιλογή τους.
public static void ProductionLicense() =>
    Doconut.DoconutHost.Initialize(options =>
    {
        options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
    });

// Διατηρήστε το viewer’s ResPath και τυχόν MVC
// IgnoreRoute σε συντονισμό με αυτό: \"/docs-assets\" σημαίνει ResPath: 'docs-assets/images'.
public static void CustomResourcePath() =>
    Doconut.DoconutHost.Initialize(options =>
    {
        options.ResourcesPath = "/docs-assets";
    });

Όταν αλλάζετε το ResourcesPath, αλλάξτε τρία πράγματα μαζί: την επιλογή, το ResPath του widget ('docs-assets/images' για "/docs-assets"), και, στο MVC, το IgnoreRoute για τη διαδρομή πόρων (routes.IgnoreRoute("docs-assets/{*pathInfo}")). Το σημείο τέλους DocImage.axd δεν μετακινείται: η διαδρομή του ορίζεται από το χαρακτηριστικό path του χειριστή στο Web.config.

Ήταν αυτή η σελίδα χρήσιμη;