DoconutOptions
Cấu hình các dịch vụ Doconut
DoconutOptions (namespace Doconut) là đối tượng cấu hình duy nhất cho toàn bộ SDK. Bạn cấu hình nó một lần, trong callback bạn truyền cho DoconutHost.Initialize trong 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>();
});Thuộc tính
| Kiểu | Thuộc tính | Mặc định | Mô tả |
|---|---|---|---|
bool | UnsafeMode | false | Khi false, DocImage.axd chỉ phục vụ một trang cho phiên ASP.NET đã mở tài liệu (hoặc, trong môi trường farm, cho trình duyệt có tên vé ký tên). Khi true, bất kỳ yêu cầu nào mang token đều được phục vụ. Để nó là false — xem Phiên & Bảo mật. |
bool | ShowDoconutInfo | false | Khi true, một yêu cầu DocImage.axd không có token sẽ trả lời Doconut <version> is running on <host> thay vì 404. Hữu ích như một kiểm tra nhanh; để false trong môi trường sản xuất. |
string | ResourcesPath | "/doconut-res" | Tiền tố URL mà mô-đun tài nguyên phục vụ các script, style và hình ảnh được nhúng. |
string | LicensePath | "" | Đường dẫn đầy đủ tới tệp giấy phép. Trống → nguồn giấy phép tiếp theo, sau đó tự động khám phá; nếu không tìm thấy → phiên bản đánh dấu nước với không có tính năng. |
string | LicenseContent | "" | Nội dung giấy phép thô (cơ sở dữ liệu, biến môi trường, kho bí mật). Có ưu tiên hơn LicensePath. |
Stream? | LicenseStream | null | Giấy phép dưới dạng stream, đọc một lần khi khởi động. Có ưu tiên hơn cả hai nguồn khác. |
string | MiddlewarePath | "/doconut" | Không được System.Web sử dụng. Điểm cuối trang luôn là trình xử lý DocImage.axd được khai báo trong Web.config. Giá trị vẫn được xác thực khi khởi động (xem bên dưới). |
bool | ResetLicense | false | Không được sử dụng. Giấy phép được đọc một lần, trong DoconutHost.Initialize; hãy tái khởi động pool ứng dụng sau khi thay thế giấy phép. |
DoconutPluginRegistry | PluginRegistry | — | Registry chỉ đọc của các đóng góp plugin, được điền bởi AddPlugin<T>(). |
Ưu tiên giấy phép: LicenseStream → LicenseContent → LicensePath → tự động khám phá (xem Cài đặt Giấy phép).
Phương thức
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()Đăng ký một plugin (Converter, DICOM). Dòng chảy — trả về thể hiện của options. Annotation và Search là các tính năng có giấy phép tích hợp sẵn và không sử dụng nó.
Nếu không có giấy phép hoạt động nào cấp quyền cho khả năng của plugin, DoconutHost.Initialize sẽ ném InvalidOperationException từ Application_Start, và trang web sẽ trả lời mọi yêu cầu bằng một lỗi 500 trống cho đến khi vấn đề được khắc phục; thông báo sẽ có trong nhật ký sự kiện Windows (xem Hệ thống Plugin).
Add…Widget()
DoconutOptions AddConverterWidget(Action<ConverterWidgetOptions>? configure = null)Các widget tích hợp sẵn mặc định tắt. Mỗi lời gọi Add…Widget() sẽ bật các endpoint của widget đó trên DocImage.axd, và yêu cầu plugin tương ứng đã được đăng ký. Mô-đun tài nguyên luôn phục vụ script của widget bất kể bạn đã bật hay chưa, vì vậy một widget tải và vẽ nhưng trả lời 404 ở hành động đầu tiên là do thiếu lời gọi này. Widget Converter được tài liệu hoá trong Plugin Chuyển đổi.
RegisterViewer(extension, factory, defaultConfig?)
DoconutOptions RegisterViewer(
string extension, // ".myext" — leading dot optional
Func<IFormatViewer> factory,
Func<BaseConfig>? defaultConfig = null)Đăng ký một trình xem tùy chỉnh cho một phần mở rộng tệp. Trình xem tùy chỉnh có ưu tiên hơn các trình xem tích hợp sẵn và các trình xem plugin và không bị giới hạn bởi giấy phép. Khi defaultConfig bị bỏ qua và một tài liệu mở mà không có cấu hình rõ ràng, một ImageConfig sẽ được sử dụng.
Ném ArgumentException (Extension must be a non-empty file extension.) cho phần mở rộng trống và ArgumentNullException cho factory null.
Xác thực khởi động
DoconutHost.Initialize xác thực các tùy chọn trước khi xây dựng bất kỳ thứ gì:
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 được kiểm tra mặc dù System.Web không bao giờ sử dụng nó, vì vậy hãy để nó ở giá trị mặc định. Giống như mọi ngoại lệ được ném từ Application_Start, một lỗi xác thực sẽ xuất hiện dưới dạng lỗi 500 trống cho mọi yêu cầu, với thông báo trong nhật ký sự kiện Windows.
Cấu hình chung
// Production: explicit license, everything else at its secure default.
public static void ProductionLicense() =>
Doconut.DoconutHost.Initialize(options =>
{
options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
});
// Custom resource path (e.g. to avoid a route conflict). Keep the viewer's ResPath and any MVC
// IgnoreRoute in step with it: "/docs-assets" means ResPath: 'docs-assets/images'.
public static void CustomResourcePath() =>
Doconut.DoconutHost.Initialize(options =>
{
options.ResourcesPath = "/docs-assets";
});Khi bạn thay đổi ResourcesPath, hãy thay đổi đồng thời ba thứ: tùy chọn, ResPath của widget ('docs-assets/images' cho "/docs-assets"), và trong MVC, IgnoreRoute cho đường dẫn tài nguyên (routes.IgnoreRoute("docs-assets/{*pathInfo}")). Endpoint DocImage.axd không thay đổi: đường dẫn của nó được đặt bởi thuộc tính path của handler trong Web.config.
Trang này có hữu ích không?