本应用程序配置是使用一个或多个配置提供程序执行的。配置提供程序使用各种配置源从键值对读取配置数据:设置文件,例如appsettings.json环境变量,例如在Docker运行环境下使用环境变量控制配置参数本应用程序中系统运行参数设置如下:{
"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{
"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适用于所有启用的日志记录提供程序,但WindowsEventLog除外。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可以通过配置AllowedHosts来限制访问的域名,避免非法解析自己的网站进行访问。参数值只能为字符类型。1、参数值“*”:表示所有的域名都可以访问。2、限制域名访问配置:“examlple.com;exampleB.cn;examlec.com”。不需要端口与主机头信息,只需要填写域名即可。中间用分号“;”间隔。主数据库连接字符串ConnectionStringsWfDBContext作为系统的主要数据库连接字符串,如果配置不正确系统将无法正常运行。请按照下方设置的数据库类型编写对应的数据库连接字符串。使用SQLServer时,模板:DataSource={服务器地址};InitialCatalog={数据库名字};User={登录用户};Password={登录密码};MultipleActiveResultSets=true使用MySQL时,模板:server={服务器地址};userid={登录用户};database={数据库名字};password={登录密码}如果连接字符串中有反斜杠“\”,请用两个反斜杠“\\”代替,因为在json内容中“\”表示转义。日志数据库服务LoggingDBLogDbType:日志服务数据库类型,支持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时,直接写数据库文件地址,例如:DataSource=myDatabase.db。注意此时需要站点对该文件夹拥有写入权限,否则日志信息无法正常写入会影响系统运行。DatabaseName:数据库名称,当采用MongoDB时,日志写入的数据库名称。LogLevel:日志等级,All全部日志,Debug调试日志,Info消息日志,Warn警告日志,Error错误日志。低等级日志会包含高等级日志,即Debug会包含Warn和Error。AppSetting应用设置"IdWorker":Id生成器的种子,支持0-35,分布式部署时,每台应用服务器都要部署成不同的种子,否则系统运行时会生成重复Id。"Version":如果为demo,则屏蔽Post请求"DbType":数据库类型:SqlServer/MySql"AppKey":系统应用名称,默认"BaseSys",应用运行后不能修改,分布式部署时名称要统一,否则不能正常运行。"CacheType":缓存类型:Redis/InnerInner模式下无法与其他站点集成,分布式部署必须是Redis,否则无法正常运行。"RedisConn":Redis连接字符串"RedisDb":Redis数据库索引,当一台Redis服务器中有多个应用部署时,请务必保证使用不同的索引,否则站点鉴权会有异常。"MailSMTP":邮箱SMTP服务器地址"MailPort":邮箱SMTP端口"MailSSL":是否启用SSL"MailUserName":发件人名称"MailAddress":发件地址"MailPassword":邮箱密码OSSProvider文件存储服务"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/HuaweiCloudEndpointstring节点oss-cn-hangzhou.aliyuncs.com在腾讯云OSS中表示AppIdAccessKeystringAccessKeyF...............sSecretKeystringSecretKeyv...............dRegionstring地域ap-chengduIsEnableHttpsbool是否启用HTTPStrue建议启用IsEnableCachebool是否启用缓存true启用后将缓存签名URL,以减少请求次数Endpoint查询ProviderEndpointRemarkMinio-默认或自建MinioEndpointAliyunhttps://help.aliyun.com/document_detail/31837.html-QCloud-腾讯云没有Endpoint,此配置项表示AppIdQiniuhttps://developer.qiniu.com/kodo/4088/s3-access-domainname-HuaweiCloudhttps://support.huaweicloud.com/productdesc-obs/obs_03_0152.html-请特别注意,编辑服务器上的配置文件后,必须重启应用程序以使更改生效。若使用系统记事本或其他不支持JSON格式的编辑器,请确保JSON格式正确无误,以免导致服务中断。