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>();
});

プロパティ

型プロパティデフォルト説明
boolUnsafeModefalsefalse の場合、DocImage.axd はドキュメントを開いた ASP.NET セッション(またはファーム環境では署名済みチケット名を持つブラウザ)にのみページを提供します。true の場合、トークンを含むすべてのリクエストが提供されます。false のままにしてください — Sessions & Security を参照。
boolShowDoconutInfofalsetrue の場合、トークンなしの DocImage.axd リクエストは 404 の代わりに Doconut <version> is running on <host> で応答します。スモークチェックとして便利です;本番環境では false のままにしてください。
stringResourcesPath"/doconut-res"リソースモジュールが埋め込みスクリプト、スタイル、画像を提供する URL プレフィックス。
stringLicensePath""ライセンスファイルへのフルパス。空の場合 → 次のライセンスソース、次に自動検出;何も見つからない場合 → 機能なしの透かし入り評価版。
stringLicenseContent""生のライセンス内容(データベース、環境変数、シークレットストア)。LicensePath より優先されます。
Stream?LicenseStreamnull起動時に一度だけ読み取られるストリームとしてのライセンス。両方の他のソースよりも優先されます。
stringMiddlewarePath"/doconut"System.Web では使用されません。 ページエンドポイントは常に Web.config で宣言された DocImage.axd ハンドラです。値は起動時に依然として検証されます(下記参照)。
boolResetLicensefalse使用されません。 ライセンスは DoconutHost.Initialize で一度だけ読み取られます;ライセンスを置き換えた後はアプリケーションプールをリサイクルしてください。
DoconutPluginRegistryPluginRegistry—AddPlugin<T>() によって埋められる、プラグイン貢献の読み取り専用レジストリ。

ライセンスの優先順位: LicenseStream → LicenseContent → LicensePath → 自動検出(License Setup を参照)。

メソッド

AddPlugin<TPlugin>()

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

プラグイン(Converter、DICOM)を登録します。フルエントにオプションインスタンスを返します。Annotation と Search は組み込みのライセンス機能で、これを使用しません。

有効なライセンスがプラグインの機能を付与していない場合、DoconutHost.Initialize は Application_Start から InvalidOperationException をスローし、問題が解決するまでサイトはすべてのリクエストに空の 500 で応答します;メッセージは Windows イベントログに記録されます(Plugin System を参照)。

Add…Widget()

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

ドロップインウィジェットはデフォルトで オフ です。各 Add…Widget() 呼び出しは DocImage.axd 上のそのウィジェットのエンドポイントを有効にし、対応するプラグインが登録されていることが必要です。リソースモジュールはウィジェットが有効かどうかに関わらずスクリプトを提供するため、最初のアクションで 404 と応答するウィジェットはこの呼び出しが欠けています。Converter ウィジェットは Converter Plugin に記載されています。

RegisterViewer(extension, factory, defaultConfig?)

text
DoconutOptions RegisterViewer(
    string extension,                    // ".myext" — 先頭のドットはオプションです
    Func<IFormatViewer> factory,
    Func<BaseConfig>? defaultConfig = null)

ファイル拡張子に対して カスタムビューア を登録します。カスタムビューアは組み込みおよびプラグインビューアよりも優先され、ライセンス制御の対象ではありません。defaultConfig が省略され、ドキュメントが明示的な構成なしで開かれた場合、ImageConfig が使用されます。

空の拡張子に対しては ArgumentException(Extension must be a non-empty file extension.)を、null のファクトリに対しては ArgumentNullException をスローします。

起動時検証

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
// Production: 明示的なライセンス、その他はすべて安全なデフォルト設定です。
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("/docs-assets" 用の 'docs-assets/images')、そして MVC ではリソースパス用の IgnoreRoute(routes.IgnoreRoute("docs-assets/{*pathInfo}"))の 3 つを同時に変更してください。DocImage.axd エンドポイントは移動しません。そのパスは Web.config のハンドラの path 属性で設定されます。

このページは役に立ちましたか?