{ "ConnectionStrings": { "DbType": "SqlServer", //数据库将支持两种模式【SqlServer,MySql】 "SqlConnection": "Server=127.0.0.1;uid=CoreShopProfessional;pwd=CoreShopProfessional;Database=CoreShopProfessional;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;" //SqlServer数据库连接字符串,需要开启数据库连接复用【MultipleActiveResultSets=true】 // 如果采用容器化部署Service 要写成mysql的服务名,否则写地址 //"SqlConnection": "Server=127.0.0.1;Port=3306;Database=CoreShopProfessional;Uid=CoreShopProfessional;Pwd=CoreShopProfessional;CharSet=utf8;pooling=true;SslMode=None;Allow User Variables=true;Convert Zero Datetime=True;Allow Zero Datetime=True;" // Mysql数据库链接字符串,请保持后面的属性别少。经过测试,mysql版本需要5.7或以上 }, //定时任务管理面板的账户密码 "HangFire": { "Login": "CoreShopProfessional", "PassWord": "CoreShopProfessional" }, "AppConfig": { "AppUrl": "https://admin.test.pro.coreshop.cn/", //后端管理地址 "AppInterFaceUrl": "https://api.test.pro.coreshop.cn/", //接口请求地址 "AppVersion": "CoreShopProfessional v0.6.1" }, //redis为必须启动项,请保持redis为正常可用 "RedisConfig": { "UseCache": true, //启用redis作为内存选择 "UseTimedTask": true, //启用redis作为定时任务 // 如果采用容器化部署Service 要写成redis的服务名,否则写地址 "ConnectionString": "127.0.0.1:6379,password=coreshop,connectTimeout=30000,responseTimeout=30000,abortConnect=false,connectRetry=1,syncTimeout=10000,DefaultDatabase=9" //redis数据库连接字符串 }, //jwt授权认证的一些设置 "JwtConfig": { "SecretKey": "8kh2luzmp0oq9wfbdeasygj647vr531n", "Issuer": "CoreShopProfessional", "Audience": "CoreCms" }, //跨域设置 "Cors": { "PolicyName": "CorsIpAccess", //策略名称 "EnableAllIPs": false, //是否应用所有的IP,如设置为true,则取消跨域限制 // 支持多个域名端口,注意端口号后不要带/斜杆:比如localhost:8000/,是错的 // 注意,http://127.0.0.1:1818 和 http://localhost:1818 是不一样的 "IPs": "http://127.0.0.1:2364,http://localhost:2364" }, //中间件 "Middleware": { //记录请求和响应数据 "RequestResponseLog": { "Enabled": false }, //记录用户方访问数据 "RecordAccessLogs": { "Enabled": false, //是否开启记录操作日志功能。 "EnabledFileMode": false, //是否开启记录到文件功能。(影响效率,接口不建议开启) "EnabledDbMode": false, //是否开启记录到数据库模式。(影响效率,后台可开启,接口不建议开启,因为数据库会存储大量的用于请求数据和返回数据。) "IgnoreApis": "/api/tools/getuserinfo,/api/tools/getNavs,/api/CodeGenerator/CodeGenDown" //使用小写逗号分隔 }, //记录IP请求数据 "IPLog": { "Enabled": false }, //开启Ip限流 "IpRateLimit": { "Enabled": false } }, //ip限流规则设置 "IpRateLimiting": { //如果EnableEndpointRateLimiting设置为false,则限制将在全局范围内应用,并且仅适用于端点的规则*。例如,如果您设置每秒 5 次调用的限制,则对任何端点的任何 HTTP 调用都将计入该限制。 //如果EnableEndpointRateLimiting设置为true,则限制将适用于每个端点,如{HTTP_Verb}{PATH}。例如,如果您为*:/api/values客户端设置每秒调用 5 次的限制,则每秒可以调用GET /api/values5 次,但也可以调用 5 次PUT /api/values。 "EnableEndpointRateLimiting": false, //如果StackBlockedRequests设置为false,则拒绝的呼叫不会添加到节流计数器。如果客户端每秒发出 3 个请求,并且您设置了每秒一个呼叫的限制,则其他限制(例如每分钟或每天计数器)将仅记录第一个呼叫,即未被阻止的呼叫。如果您希望被拒绝的请求计入其他限制,您必须设置StackBlockedRequests为true. "StackBlockedRequests": false, //用于在您的RealIpHeaderKestrel 服务器位于反向代理之后时提取客户端 IP,如果您的代理使用不同的标头,则X-Real-IP使用此选项进行设置。 "RealIpHeader": "X-Real-IP", //ClientIdHeader用于提取白名单的客户端 ID 。如果此标头中存在客户端 ID 并且与 ClientWhitelist 中指定的值匹配,则不应用速率限制。 "ClientIdHeader": "X-ClientId", //IP白名单:支持Ip v4和v6;如 //"IpWhitelist": [ "127.0.0.1", "::1/10", "192.168.0.0/24" ], "IpWhitelist": [], //端点白名单 "EndpointWhitelist": [ "get:/api/license", "*:/api/status" ], //客户端白名单 "ClientWhitelist": [ "dev-client-1", "dev-client-2" ], "QuotaExceededResponse": { "Content": "{{\"status\":429,\"msg\":\"访问过于频繁,请稍后重试\",\"success\":false}}", "ContentType": "application/json", "StatusCode": 429 }, //返回状态码 "HttpStatusCode": 429, //通用规则 //api规则,结尾一定要带* "GeneralRules": [ //{ // //端点路径 // "Endpoint": "*:/api/*", // //时间段,格式:{数字}{单位};可使用单位:s, m, h, d // "Period": "1m", // //限制数量 // "Limit": 60 //}, //1秒钟只能调用3次 { "Endpoint": "*", "Period": "1s", "Limit": 30 }, //1分钟只能调用300次 { "Endpoint": "*", "Period": "1m", "Limit": 1000 }, //12H只能调用10000 { "Endpoint": "*", "Period": "12h", "Limit": 100000 }, //7天只能调用100000次 { "Endpoint": "*", "Period": "7d", "Limit": 1000000 } ] }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "AllowedHosts": "*", // 微信支付 // 更多配置,请查看WeChatPayOptions类 "WeChatPay": { // 应用号 // 如:微信公众平台AppId、微信开放平台AppId、微信小程序AppId、企业微信CorpId等 "AppId": "", // 商户号 // 为微信支付商户平台的商户号 "MchId": "", // API密钥 // 为微信支付商户平台的API密钥,请注意不是APIv3密钥 "APIKey": "", // APIv3密钥 // 为微信支付商户平台的APIv3密钥,请注意不是API密钥,v3接口必填 "APIv3Key": "", // API证书(.p12) // 为微信支付商户平台的API证书(.p12),v3接口必填 // 可为证书文件(.p12)路径 / 证书文件(.p12)的base64字符串 //以下格式为windows服务器下路径格式,linux下格式为 WxPayCert/apiclient_cert.p12 "Certificate": "WxPayCert\\apiclient_cert.p12", // RSA公钥 // 目前仅调用"企业付款到银行卡API"时使用,执行本示例中的"获取RSA加密公钥API"即可获取。 "RsaPublicKey": "", // 子商户应用号(目前仅调用服务商API时使用,子商户的公众号、移动应用AppId。) "SubAppId": "", // 子商户号(目前仅调用服务商API时使用,子商户的商户号。) "SubMchId": "" }, // 支付宝(暂未开通) // 更多配置,请查看AlipayOptions类 "Alipay": { // 注意: // 若涉及资金类支出接口(如转账、红包等)接入,必须使用“公钥证书”方式。不涉及到资金类接口,也可以使用“普通公钥”方式进行加签。 // 本示例默认的加签方式为“公钥证书”方式,并调用 CertificateExecuteAsync 方法 执行API。 // 若使用“普通公钥”方式,除了遵守下方注释的规则外,调用 CertificateExecuteAsync 也需改成 ExecuteAsync。 // 支付宝后台密钥/证书官方配置教程:https://opendocs.alipay.com/open/291/105971 // 密钥格式:请选择 PKCS1(非JAVA适用),切记 切记 切记 // 应用Id // 为支付宝开放平台-APPID "AppId": "", // 支付宝公钥 RSA公钥 // 为支付宝开放平台-支付宝公钥 // “公钥证书”方式时,留空 // “普通公钥”方式时,必填 "AlipayPublicKey": "", // 应用私钥 RSA私钥 // 为“支付宝开放平台开发助手”所生成的应用私钥 "AppPrivateKey": "", // 服务网关地址 // 默认为正式环境地址 "ServerUrl": "https://openapi.alipay.com/gateway.do", // 签名类型 // 支持:RSA2(SHA256WithRSA)、RSA1(SHA1WithRSA) // 默认为RSA2 "SignType": "RSA2", // 应用公钥证书 // 可为证书文件路径 / 证书文件的base64字符串 // “公钥证书”方式时,必填 // “普通公钥”方式时,留空 "AppPublicCert": "", // 支付宝公钥证书 // 可为证书文件路径 / 证书文件的base64字符串 // “公钥证书”方式时,必填 // “普通公钥”方式时,留空 "AlipayPublicCert": "", // 支付宝根证书 // 可为证书文件路径 / 证书文件的base64字符串 // “公钥证书”方式时,必填 // “普通公钥”方式时,留空 "AlipayRootCert": "" }, "PayCallBack": { //微信支付回调 "WeChatPayUrl": "https://api.test.pro.coreshop.cn/Notify/WeChatPay/Unifiedorder", //微信退款回调 "WeChatRefundUrl": "https://api.test.pro.coreshop.cn/Notify/WeChatPay/Refund", //支付宝支付回调 "AlipayUrl": "https://api.test.pro.coreshop.cn/Notify/AliPay/Unifiedorder", //支付宝退款回调 "AlipayRefundUrl": "" }, "WeChatOptions": { //公众号 "WeiXinAppId": "", "WeiXinAppSecret": "", "EncodingAESKey": "", "Token": "", //小程序 "WxOpenAppId": "", "WxOpenAppSecret": "", "WxOpenToken": "", "WxOpenEncodingAESKey": "" } }