本应用程序配置是使用一个或多个配置提供程序执行的。 配置提供程序使用各种配置源从键值对读取配置数据:
appsettings.json
本应用程序中系统运行参数设置如下:
{
"Logging": {
"LogLevel": {
"Default": "Warning" //日志等级
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"WfDBContext": "Data Source=.;Initial Catalog=MES;User=sa;Password=123456;MultipleActiveResultSets=true" //数据库连接字符串
},
"LoggingDB": {
"LogDbType": "SQLite", //日志服务数据库类型:MongoDB/SQLite/Inner Inner模式直接写入业务数据库无需配置下方连接参数
"ConnectionString": "Data Source=myDatabase.db", //"mongodb://localhost:27017",
"DatabaseName": "LogStore",
"LogLevel": "Debug" //日志等级:All/Debug/Info/Warn/Error
},
"AppSetting": {
"IdWorker": 1,
"SSOPassport": "http://localhost:52789",
"RoutePre": "",
"Version": "1.0", //如果为demo,则屏蔽Post请求
"DbType": "SqlServer", //数据库类型:SqlServer/MySql
"AppKey": "BaseSys",
"CacheType": "Redis", //缓存类型:Redis/Inner Inner模式下无法与其他站点集成
"RedisConn": "localhost", //Redis连接字符串
"RedisDb": "0", //Redis数据库索引
"MailSMTP": "smtp.163.com", //邮箱SMTP服务器地址
"MailPort": 465, //邮箱SMTP端口
"MailSSL": true, //是否启用SSL
"MailUserName": "MES智能制造", //发件人名称
"MailAddress": "d****@163.com", //发件地址
"MailPassword": "Q********Q" //邮箱密码
},
"OSSProvider": [
{
"Provider": "Aliyun", //枚举值支持:Minio/Aliyun/QCloud/Qiniu/HuaweiCloud
"Endpoint": "oss-cn-shanghai.aliyuncs.com", //腾讯云中表示AppId,注意:主账号的AppId
"Region": "oss-cn-shanghai", //地域
"AccessKey": "LT*************ib",
"SecretKey": "0W******************I",
"IsEnableCache": true //是否启用缓存,推荐开启
}
]
}
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
在上述 JSON 中:
"Default"
、"Microsoft"
和 "Microsoft.Hosting.Lifetime"
日志级别类别。"Default"
值应用于未指定的所有类别,从而有效地将所有类别的所有默认值设置为 "Information"
。 可以通过为某个类别指定值来重写此行为。"Microsoft"
类别适用于以 "Microsoft"
开头的所有类别。"Microsoft"
类别在日志级别 Warning
或更高级别记录。"Microsoft.Hosting.Lifetime"
类别比 "Microsoft"
类别更具体,因此 "Microsoft.Hosting.Lifetime"
类别在日志级别 "Information"
和更高级别记录。LogLevel
适用于所有启用的日志记录提供程序,但 Windows EventLog 除外。Logging
属性可以具有 LogLevel 和日志提供程序属性。 LogLevel
指定要针对所选类别进行记录的最低级别。 在前面的 JSON 中,指定了 Information
和 Warning
日志级别。 LogLevel
表示日志的严重性,范围为 0 到 6:
Trace
= 0、Debug
= 1、Information
= 2、Warning
= 3、Error
= 4、Critical
= 5 和 None
= 6。
指定 LogLevel
时,将为指定级别和更高级别的消息启用日志记录。 在前面的 JSON 中,记录了 Information
及更高级别的 Default
类别。 例如,记录了 Information
、Warning
、Error
和 Critical
消息。 如果未指定 LogLevel
,则日志记录默认为 Information
级别。
提供程序属性可以指定 LogLevel
属性。 提供程序下的 LogLevel
指定要为该提供程序记录的级别,并替代非提供程序日志设置。
可以通过配置AllowedHosts来限制访问的域名,避免非法解析自己的网站进行访问。参数值只能为字符类型。
1、参数值“*”:表示所有的域名都可以访问。
2、限制域名访问配置:“examlple.com;exampleB.cn;examlec.com”。
不需要端口与主机头信息,只需要填写域名即可。中间用分号“;”间隔。
WfDBContext作为系统的主要数据库连接字符串,如果配置不正确系统将无法正常运行。请按照下方设置的数据库类型编写对应的数据库连接字符串。
使用SQL Server时,模板:Data Source={服务器地址};Initial Catalog={数据库名字};User={登录用户};Password={登录密码};MultipleActiveResultSets=true
使用MySQL时,模板:server={服务器地址};user id={登录用户};database={数据库名字};password={登录密码}
如果连接字符串中有反斜杠“\”,请用两个反斜杠“\\”代替,因为在json内容中“\”表示转义。
LogDbType:日志服务数据库类型,支持MongoDB/SQLite/Inner,Inner模式直接写入业务数据库无需配置下方连接参数。
当系统业务繁忙时,系统日志建议采用MongoDB或者SQLite,使用Inner模式会占用大量主数据库资源,可能会影响系统业务稳定性。
如果系统是分布式部署的运行环境,则建议使用MongoDB,如果使用SQLite日志信息会有缺失。
ConnectionString:日志服务器连接字符串,当使用MongoDB时填写MongoDB连接字符串模板:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
例如:mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin
当使用SQLite时,直接写数据库文件地址,例如:Data Source=myDatabase.db。注意此时需要站点对该文件夹拥有写入权限,否则日志信息无法正常写入会影响系统运行。
DatabaseName:数据库名称,当采用MongoDB时,日志写入的数据库名称。
LogLevel:日志等级,All全部日志,Debug调试日志,Info消息日志,Warn警告日志,Error错误日志。低等级日志会包含高等级日志,即Debug会包含Warn和Error。
"IdWorker": Id生成器的种子,支持0-35,分布式部署时,每台应用服务器都要部署成不同的种子,否则系统运行时会生成重复Id。
"Version": 如果为demo,则屏蔽Post请求
"DbType": 数据库类型:SqlServer/MySql
"AppKey": 系统应用名称,默认"BaseSys",应用运行后不能修改,分布式部署时名称要统一,否则不能正常运行。
"CacheType": 缓存类型:Redis/Inner Inner模式下无法与其他站点集成,分布式部署必须是Redis,否则无法正常运行。
"RedisConn": Redis连接字符串
"RedisDb": Redis数据库索引,当一台Redis服务器中有多个应用部署时,请务必保证使用不同的索引,否则站点鉴权会有异常。
"MailSMTP": 邮箱SMTP服务器地址
"MailPort": 邮箱SMTP端口
"MailSSL":是否启用SSL
"MailUserName": 发件人名称
"MailAddress": 发件地址
"MailPassword": 邮箱密码
"Provider": 枚举值支持:Minio/Aliyun/QCloud/Qiniu/HuaweiCloud
"Endpoint": "oss-cn-shanghai.aliyuncs.com", //腾讯云中表示AppId,注意:主账号的AppId
"Region": "oss-cn-shanghai", //地域
"AccessKey": "LT*************ib",
"SecretKey": "0W******************I",
"IsEnableCache": true //是否启用缓存,推荐开启
名称 | 类型 | 说明 | 案例 | 备注 |
---|---|---|---|---|
Provider | 枚举 | OSS提供者 | Minio | 允许值:Minio/Aliyun/QCloud/Qiniu/HuaweiCloud |
Endpoint | string | 节点 | oss-cn-hangzhou.aliyuncs.com | 在腾讯云OSS中表示AppId |
AccessKey | string | AccessKey | F...............s | |
SecretKey | string | SecretKey | v...............d | |
Region | string | 地域 | ap-chengdu | |
IsEnableHttps | bool | 是否启用HTTPS | true | 建议启用 |
IsEnableCache | bool | 是否启用缓存 | true | 启用后将缓存签名URL,以减少请求次数 |
Endpoint查询
Provider | Endpoint | Remark |
---|---|---|
Minio | - | 默认或自建Minio Endpoint |
Aliyun | https://help.aliyun.com/document_detail/31837.html | - |
QCloud | - | 腾讯云没有Endpoint,此配置项表示AppId |
Qiniu | https://developer.qiniu.com/kodo/4088/s3-access-domainname | - |
HuaweiCloud | https://support.huaweicloud.com/productdesc-obs/obs_03_0152.html | - |
请特别注意,编辑服务器上的配置文件后,必须重启应用程序以使更改生效。若使用系统记事本或其他不支持JSON格式的编辑器,请确保JSON格式正确无误,以免导致服务中断。