script

# 必要配置

# 数据库连接配置

支持多类型、多个数据库访问,同时支持一主多从数据库读写分离。数据库连接配置在appsettings.jsonDbConnections中,必须至少配置一个主数据库MasterDB。如下:

"DbConnections": [
    {
      "ConnId": "LocalDB",
      "Enabled": true,true //是否可用
      "MasterDB": { //主库
        "ConnectionString": "server=localhost;Database=bonwcslocal1;Uid=root;Pwd=123456;Port=3306;CharSet=utf8mb4;Allow User Variables=True;SslMode=none;AllowLoadLocalInfile=true;",
        "DatabaseType": 0, //数据库类型取值:mysql=0,SqlServer=1,Oracle=2,Access=3,SQLite=4,PostgreSQL=5,Npgsql=6,Dm=7,Kdbndp=8
        "Enabled": true //是否可用
      },
      "ReadDB": [//只读库
        {
          "ConnectionString": "xxx", //数据库连接字符
          "HitRate": 10, //从库执行访问权重,越大越先执行
          "Enabled": true //是否可用
        },
        {
          "ConnectionString": "xxxxx", //数据库连接字符
          "HitRate": 20, //从库执行访问权重,越大越先执行
          "Enabled": true //是否可用
        }
      ]
   }
]

其中:

1、MassterDB 为主数据库配置信息,在不开启读写分离的情况下,仅配置该参数即可。需要注意DatabaseType指定数据库类型,目前支持的数据库类型值有 mysql=0,SqlServer=1,Oracle=2,Access=3,SQLite=4,PostgreSQL=5,Npgsql=6,Dm=7,Kdbndp=8。

2、ReadDB 为从数据库,需要支持读写分离是配置。

# 服务器缓存设置

系统采用 Redis 和 net 自带的 MemoryCache。

可以根据自己需要,扩展 Redis 等缓存。需要引用 Microsoft.Extensions.Caching.Redis 和 StackExchange.Redis 两个 Redis 包。

在 appsettings.json 添加配置

"CacheProvider": {
    "UseRedis": true,
    "Redis_ConnectionString": "127.0.0.1:6379,allowAdmin=true,password=123456,defaultdatabase=0",
    "Redis_InstanceName": "yuebon_redis_"
  }

我们写一个类,来获取配置几个配置,CacheProvider 说明:

1)、UseRedis:是否使用 Redis 缓存,不使用设置 false 即可;

2)、Redis_ConnectionString:Redis 连接,按示例参数进行配置,allowadmin、password、defaultdatabase 都需要,其他配置参数请查阅相关文档;

3)、Redis_InstanceName:Redis 实例名称

# 跨域设置

跨域访问在 appsettings.json 中设置 AllowOrigins 值,用英文逗号“,”隔开,不要以斜杆“/”结束

"AllowOrigins": "http://localhost,http://192.168.1.106,http://netvue.ts.yuebon.com",

前后端分离时前台调用后台系统时就是跨域访问,此处配置允许前台访问的请求地址。第三方网站调用本系统 webapi 也要配置,否则一样不能跨域访问。

Startup.cs 代码

目前源码中默认为测试环境配置,允许所有跨域访问,配置如下:

//允许所有跨域访问,测试用
services.AddCors(options => options.AddPolicy("yuebonCors",
     policy => policy.WithOrigins("*").AllowAnyHeader().AllowAnyMethod()));

正式环境建议如下配置:

//全局设置跨域访问
services.AddCors(options => options.AddPolicy("yuebonCors",
policy => policy.WithOrigins(Configuration.GetSection("AppSetting:AllowOrigins").Value.Split(',', StringSplitOptions.RemoveEmptyEntries))
.AllowAnyHeader()
.AllowAnyMethod()));
  • IIS 部署中部分会出现 method 为 delete 时跨域问题?

请在 web.config 做如下配置:

<modules>
   <remove name="WebDAVModule" />
</modules>
<handlers>
   <remove name="WebDAV" />
</handlers>

如遇到问题到Issues(opens new window) 反馈

最后更新时间: 5/15/2022, 8:26:05 PM