DoconutOptions
Konfiguruj usługi Doconut
DoconutOptions (namespace Doconut) jest jedynym obiektem konfiguracyjnym dla całego SDK. Konfigurujesz go raz, w wywołaniu zwrotnym, które przekazujesz do DoconutHost.Initialize w Application_Start.
Doconut.DoconutHost.Initialize(options =>
{
options.LicensePath = HostingEnvironment.MapPath("~/wwwroot/Doconut.Viewer.lic");
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Właściwości
| Typ | Właściwość | Domyślne | Opis |
|---|---|---|---|
bool | UnsafeMode | false | Gdy false, DocImage.axd serwuje stronę tylko do sesji ASP.NET, która otworzyła dokument (lub, w farmie, do przeglądarki z nazwami podpisanych biletów). Gdy true, każde żądanie niosące token jest obsługiwane. Pozostaw false — zobacz Sesje i bezpieczeństwo. |
bool | ShowDoconutInfo | false | Gdy true, żądanie DocImage.axd bez tokenu odpowiada Doconut <version> is running on <host> zamiast 404. Przydatne jako szybka kontrola; pozostaw false w produkcji. |
string | ResourcesPath | "/doconut-res" | Prefiks URL, pod którym moduł zasobów serwuje osadzone skrypty, style i obrazy. |
string | LicensePath | "" | Pełna ścieżka do pliku licencji. Pusty → następne źródło licencji, potem automatyczne wykrywanie; brak wyniku → wersja próbna z wodnym znakiem i bez możliwości. |
string | LicenseContent | "" | Surowa zawartość licencji (baza danych, zmienna środowiskowa, magazyn tajemnic). Ma pierwszeństwo przed LicensePath. |
Stream? | LicenseStream | null | Licencja jako strumień, odczytywana raz przy uruchomieniu. Ma pierwszeństwo przed oboma innymi źródłami. |
string | MiddlewarePath | "/doconut" | Nie używane przez System.Web. Punkt końcowy strony jest zawsze obsługiwany przez handler DocImage.axd zadeklarowany w Web.config. Wartość jest nadal walidowana przy starcie (zobacz poniżej). |
bool | ResetLicense | false | Nie używane. Licencja jest odczytywana raz, w DoconutHost.Initialize; zrestartuj pulę aplikacji po wymianie licencji. |
DoconutPluginRegistry | PluginRegistry | — | Rejestr tylko do odczytu wkładów wtyczek, wypełniany przez AddPlugin<T>(). |
Priorytet licencji: LicenseStream → LicenseContent → LicensePath → automatyczne wykrywanie (zobacz Konfiguracja licencji).
Metody
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Rejestruje wtyczkę (Converter, DICOM). Fluent — zwraca instancję opcji. Annotation i Search są wbudowanymi funkcjami licencjonowanymi i nie używają tego.
Jeśli żadna aktywna licencja nie przyznaje wtyczce możliwości, DoconutHost.Initialize rzuca InvalidOperationException z Application_Start, a strona odpowiada na każde żądanie pustym 500, dopóki problem nie zostanie rozwiązany; komunikat znajduje się w dzienniku zdarzeń Windows (zobacz System wtyczek).
Add…Widget()
DoconutOptions AddConverterWidget(Action<ConverterWidgetOptions>? configure = null)Wbudowane widżety są wyłączone domyślnie. Każde wywołanie Add…Widget() włącza endpointy tego widżetu w DocImage.axd i wymaga zarejestrowania odpowiedniej wtyczki. Moduł zasobów serwuje skrypt widżetu niezależnie od tego, czy go włączyłeś, więc widżet, który się ładuje i rysuje, ale na pierwszej akcji odpowiada 404, nie ma tego wywołania. Widżet Converter jest udokumentowany w Wtyczka Converter.
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — opcjonalna kropka na początku
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Rejestruje niestandardowy podgląd dla rozszerzenia pliku. Niestandardowe podglądy mają pierwszeństwo przed wbudowanymi i podglądami wtyczek i nie są ograniczone licencją. Gdy defaultConfig jest pominięte i dokument otwiera się bez wyraźnej konfiguracji, używany jest ImageConfig.
Rzuca ArgumentException (Extension must be a non-empty file extension.) przy pustym rozszerzeniu i ArgumentNullException przy null factory.
Walidacja przy starcie
DoconutHost.Initialize waliduje opcje przed budowaniem czegokolwiek:
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 jest sprawdzane, mimo że System.Web nigdy go nie używa, więc pozostaw je w wartości domyślnej. Podobnie jak każde wyjątek rzucony z Application_Start, niepowodzenie walidacji pojawia się jako pusty 500 przy każdym żądaniu, a komunikat znajduje się w dzienniku zdarzeń Windows.
Typowe konfiguracje
// Produkcja: jawna licencja, wszystko inne w bezpiecznym ustawieniu domyślnym.
public static void ProductionLicense() =>
Doconut.DoconutHost.Initialize(options =>
{
options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
});
// Niestandardowa ścieżka zasobów (np. aby uniknąć konfliktu trasy). Zachowaj ResPath przeglądarki i wszelkie MVC
// IgnoreRoute w zgodzie z tym: "/docs-assets" oznacza ResPath: 'docs-assets/images'.
public static void CustomResourcePath() =>
Doconut.DoconutHost.Initialize(options =>
{
options.ResourcesPath = "/docs-assets";
});Gdy zmieniasz ResourcesPath, zmień jednocześnie trzy rzeczy: opcję, ResPath widżetu ('docs-assets/images' dla "/docs-assets") oraz, w MVC, IgnoreRoute dla ścieżki zasobu (routes.IgnoreRoute("docs-assets/{*pathInfo}")). Endpoint DocImage.axd nie przemieszcza się: jego ścieżka jest ustawiana przez atrybut path handlera w Web.config.
Czy ta strona była pomocna?