DoconutOptions
配置 Doconut 服务
DoconutOptions(命名空间 Doconut)是整个 SDK 的唯一配置对象。您只需在传递给 DoconutHost.Initialize 的回调中(位于 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>();
});属性
| 类型 | 属性 | 默认 | 描述 |
|---|---|---|---|
bool | UnsafeMode | false | 当 false,DocImage.axd 仅向打开文档的 ASP.NET 会话(或在集群中,向拥有签名票据的浏览器)提供页面。当 true,任何携带令牌的请求都会被提供。保持 false — 请参阅 会话与安全。 |
bool | ShowDoconutInfo | false | 当 true,未携带令牌的 DocImage.axd 请求会返回 Doconut <version> is running on <host> 而不是 404。可用作快速检查;在生产环境中保持 false。 |
string | ResourcesPath | "/doconut-res" | 资源模块提供嵌入式脚本、样式和图像的 URL 前缀。 |
string | LicensePath | "" | 许可证文件的完整路径。为空 → 使用下一个许可证来源,然后自动发现;若未找到 → 以水印评估模式运行,且无任何功能。 |
string | LicenseContent | "" | 原始许可证内容(数据库、环境变量、密钥存储)。优先于 LicensePath。 |
Stream? | LicenseStream | null | 许可证作为流,在启动时读取一次。优先于其他两种来源。 |
string | MiddlewarePath | "/doconut" | System.Web 不使用。页面端点始终是 Web.config 中声明的 DocImage.axd 处理程序。该值仍在启动时进行验证(见下文)。 |
bool | ResetLicense | false | 不使用。许可证在 DoconutHost.Initialize 中读取一次;更换许可证后请回收应用程序池。 |
DoconutPluginRegistry | PluginRegistry | — | 插件贡献的只读注册表,由 AddPlugin<T>() 填充。 |
许可证优先级:LicenseStream → LicenseContent → LicensePath → 自动发现(参见 许可证设置)。
方法
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()注册一个插件(Converter、DICOM)。采用流式调用——返回 选项 实例。Annotation 和 Search 是内置的授权功能,不使用此方法。
如果没有有效许可证授予插件的功能,DoconutHost.Initialize 会从 Application_Start 抛出 InvalidOperationException,并且站点会对所有请求返回空的 500,直至问题解决;相关信息记录在 Windows 事件日志中(参见 插件系统)。
Add…Widget()
DoconutOptions AddConverterWidget(Action<ConverterWidgetOptions>? configure = null)这些即插即用的小部件默认 关闭。每次调用 Add…Widget() 会在 DocImage.axd 上打开该小部件的端点,并且需要已注册相应的插件。资源模块始终提供小部件的脚本,无论是否已启用,因此如果小部件能够加载并渲染,但在首次操作时返回 404,则说明缺少此调用。Converter 小部件的文档位于 Converter 插件。
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — 前导点可选
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)为文件扩展名注册一个 自定义查看器。自定义查看器优先于内置和插件查看器,并且不受许可证限制。当省略 defaultConfig 且文档在没有显式配置的情况下打开时,将使用 ImageConfig。
对于空扩展名会抛出 ArgumentException(Extension must be a non-empty file extension.),对于空工厂会抛出 ArgumentNullException。
启动验证
DoconutHost.Initialize 在构建任何内容之前验证选项:
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 事件日志中记录相应信息。
常见配置
// Production: 明确的许可证,其他所有均使用安全默认设置。
public static void ProductionLicense() =>
Doconut.DoconutHost.Initialize(options =>
{
options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
});
// Custom resource path (例如,为避免路由冲突)。保留 viewer 的 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}"))。DocImage.axd 端点位置不变:其路径由 Web.config 中处理程序的 path 属性设置。
此页面对您有帮助吗?