配置文件
因为需要同时兼顾到Asp.Net, Asp.Net Core和Owin,
ZKWeb程序的配置并不保存在web.config或者appsettings.json里面.
ZKWeb程序的配置统一保存在App_Data\config.json.
配置结构
config.json的结构大致如下:
{ "ORM": ORM名称, "Database": 数据库名称, "ConnectionString": 数据库连接字符串, "PluginDirectories": [ 用于查找插件的目录列表 ], "Plugins": [ 插件列表 ], "Extra": { 附加配置 } }
各配置的说明
ORM
ORM名称, 可以是NHibernate, EFCore, Dapper, MongoDB, InMemory
Database
数据库名称, 可以是MSSQL, MySQL, SQLite, PostgreSQL, InMemory, MongoDB
ConnectionString
数据库连接字符串, 填写标准的连接字符串即可, 选择InMemory时可以随便填.
PluginDirectories
用于查找插件的目录列表, 会从这些目录中查找插件,
应该填写相对于网站程序的路径,不填写时使用["App_Data/Plugins"].
PluginDirectories
插件列表, 应该填写插件文件夹的名称.
这里的顺序等于插件的加载顺序, 加载顺序会影响组件注册的顺序和资源文件的读取顺序.
Extra
附加配置, 可以用来修改高级的配置, 例如各项缓存时间等.
获取配置
在代码中获取配置可以使用:
var configManager = Application.Ioc.Resolve<WebsiteConfigManager>(); var value = configManager.WebsiteConfig.Extra.GetOrDefault<bool>("SomeExtraConfiguration");
附加配置
以下是ZKWeb内部使用的附加配置, 它们保存在Extra节下.
部分插件中也有额外的配置项, 请参考插件的说明.
ZKWeb.TemporaryDatabaseORM临时数据库使用的ORM, 默认是InMemoryZKWeb.TemporaryDatabaseType临时数据库使用的数据库类型ZKWeb.TemporaryDatabaseConnectionString临时数据库试用的连接字符串ZKWeb.TranslateCacheTime翻译的缓存时间, 单位是秒ZKWeb.TemplatePathCacheTime模板路径缓存时间, 单位是秒ZKWeb.ResourcePathCacheTime资源路径的缓存时间, 单位是秒ZKWeb.WidgetInfoCacheTime模块信息的缓存时间, 单位是秒ZKWeb.CustomWidgetsCacheTime自定义模块列表的缓存时间, 单位是秒ZKWeb.TemplateCacheTime模板的缓存时间, 单位是秒ZKWeb.DisplayFullExceptionForTemplate是否在描画模板发生例外时显示完整信息ZKWeb.DisplayFullExceptionForRequest是否在请求发生例外时显示完整信息ZKWeb.ClearCacheAfterUsedMemoryMoreThan内存占用超过值时自动清理缓存, 单位是MBZKWeb.CleanCacheCheckInterval缓存自动清理器的检查间隔, 单位是秒ZKWeb.CompilePluginsWithReleaseConfiguration使用Release配置编译插件,默认是falseZKWeb.DisableCaseSensitiveRouting禁止大小写敏感的路由ZKWeb.DisableAutomaticPluginReloading禁止自动重新加载插件