DoconutOptions
Doconut 서비스 구성
DoconutOptions (namespace Doconut) 은 전체 SDK에 대한 단일 구성 객체입니다. 이를 한 번만 구성하면 되며, Application_Start 안의 콜백에서 DoconutHost.Initialize에 전달합니다.
Doconut.DoconutHost.Initialize(options =>
{
options.LicensePath = HostingEnvironment.MapPath("~/wwwroot/Doconut.Viewer.lic");
options.UnsafeMode = false;
options.ShowDoconutInfo = false;
options.AddPlugin<Doconut.Plugins.Dicom.DicomPlugin>();
});Properties
| 유형 | 속성 | 기본값 | 설명 |
|---|---|---|---|
bool | UnsafeMode | false | false 일 때, DocImage.axd 은 문서를 연 ASP.NET 세션(또는 팜 환경에서는 서명된 티켓을 가진 브라우저)에게만 페이지를 제공합니다. true 일 때는 토큰을 포함한 모든 요청이 제공됩니다. false 로 두세요 — 세션 및 보안을 참조하십시오. |
bool | ShowDoconutInfo | false | true 일 때, 토큰이 없는 DocImage.axd 요청은 404 대신 Doconut <version> is running on <host> 로 응답합니다. 스모크 체크에 유용합니다; 프로덕션에서는 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 → 자동 검색 (라이선스 설정을 참조).
Methods
AddPlugin<TPlugin>()
DoconutOptions AddPlugin<TPlugin>() where TPlugin : IDoconutPlugin, new()플러그인(Converter, DICOM)을 등록합니다. Fluent — 옵션 인스턴스를 반환합니다. 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.) 를, null 팩토리에 대해서는 ArgumentNullException 를 발생시킵니다.
Startup validation
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 이벤트 로그에 기록됩니다.
Common configurations
// Production: 명시적 라이선스, 나머지는 모두 보안 기본값으로.
public static void ProductionLicense() =>
Doconut.DoconutHost.Initialize(options =>
{
options.LicenseContent = Environment.GetEnvironmentVariable("DOCONUT_LICENSE") ?? "";
});
// 사용자 정의 리소스 경로 (예: 라우트 충돌을 피하기 위해). 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 속성에 의해 설정됩니다.
이 페이지가 도움이 되었나요?