部署前提
- 有一台已经搭建好环境的服务器。操作系统为windows 2012 R2或windows 2016(企业版或者数据中心版本均可)。
- 搭建好IIS环境,请参考【https://www.coreshop.cn/Doc/Details/28】
- 安装好
Asp.Net Core7
支持,请参考【https://www.coreshop.cn/Doc/Details/29】装最新版本,不是一定装7.0.0
- 准备一个已经备案的二级域名,如:http://admin.demo.coreshop.cn
- 准备好已运行的Redis数据库连接权限。请参考【https://www.coreshop.cn/Doc/Details/30】
- 还原好数据库,准备好数据库的链接权限。请参考【https://www.coreshop.cn/Doc/Details/35】,mysql或mssql数据库均可
- 准备好微信支付的的相关数据
配置代码
首先我们通过vsual studio 2019打开CoreShop源代码解决方案。
打开【9.App】【CoreCms.Net.Web.Admin】【appsettings.json】配置文件。
修改数据库连接
首先我们将代码定位到第3行 ConnectionStrings - DbType
节点,我们根据自己的需求,修改为SqlServer
或者MySql
如果使用的是SqlServer
的数据库,我们只需要修改第4行内的链接字符串内容:
- Server:服务器节点,ip或者域名
- uid:登录数据库的用户名(建议不要使用sa超级权限)
- pwd:登录数据库的密码
- Database:数据库的名称
- MultipleActiveResultSets:是否开启数据库连接复用。
- 完整的字符串格式如下
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;
如果使用的是MySql
数据库,我们可以注释掉第4行数据库连接字符串,取消第8行mysql数据库连接字符串的示例,然后根据自己的权限参数进行调整:
- Server:服务器节点,ip或者域名
- Port:端口号
- Database:数据库的名称
- Uid:登录数据库的密码(建议不要使用root超级权限)
- Pwd:登录数据库的密码
- CharSet:字符集编码格式
- pooling:是否开启池化,这个键的值设置为true,当值为True时,任何一个新创建的连接都将添加到连接池中当程序被关闭时,在下次试图开启一个相同的连接时,这个连接将从连接池中取出,如果连接字符串相同,则被认为是同一个连接。如果连接字符串不相同,则认为是不同的连接。
- SslMode:是否开启ssl
- Treat Tiny As Boolean:如果设置为True,则Mysql中的tinyint类型会被转换为MS Server中的bit类型,但有时候我们是不想要这来的转换的,所以这个可以根据自己的需要来配置
- Allow User Variables:是否允许 SQL 中出现用户变量(报表功能使用到纯sql查询,此功能需开启)
- Convert Zero Datetime:当没有设置此属性时,如果Mysql数据库中的datetime列为null的时候,.net在转换时会抛出如下异常:Unable to convert MySQL date/time value to System.DateTime at MySql.Data.Types.MySqlDateTime.GetDateTime()这是因为.net的默认最小日期和Mysql的不匹配,导致转换出错,解决办法就是以上连接串中的(设置Convert Zero Datetime=True)
- 完整的字符串格式如下
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或以上
修改商城全局配置域名
我们将代码定位到第16行的 AppConfig
下面的AppUrl
和AppInterFaceUrl
,分别录入后端管理程序的网站域名地址,以及api接口端部署后提供访问的域名地址(api接口一般为https协议)
配置redis链接字符串
我们将代码定位到第21行的RedisConfig下:
- 将UseCache设置为true
- 将UseTimedTask设置为true
- ConnectionString为redis链接字符串
- 127.0.0.1:6379分别为redis的服务器访问ip地址,6379为端口号。
- password:链接的权限密码,默认为空的情况下可以不设置。
- connectTimeout:客户端与redis链接超时时间。毫秒单位。
- connectRetry:重试连接次数
- syncTimeout: 同步操作默认超时时间
- DefaultDatabase:默认链接的数据库,类似于sqlserver或者mysql里面单个的数据库,唯一就是redis不需要去创建,直接指定即可,具体redis有多少库,根据自己的配置来选择。
- 完整示例如下
127.0.0.1:6379,password=CoreShop,connectTimeout=3000,connectRetry=1,syncTimeout=10000,DefaultDatabase=10
配置微信支付
我们将代码定位到第84行WeChatPay节点,针对以下节点进行设置:
- AppId:微信小程序AppId,通过管理微信小程序管理
- MchId:微信的支付的商户号,不是微信小程序的appid,一般是16开头的10位数字
- APIKey:为微信支付商户平台的API密钥,请注意不是APIv3密钥。可了解【】获取密钥的步骤
- APIv3Key:这个是APIv3密钥,我们目前未采用,为以后使用APIv3版本预留。可为空
- Certificate:证书文件的存放地址,默认【WxPayCert\\apiclient_cert.p12】即可。可了解【】申请证书的步骤
- RsaPublicKey:企业付款到银行卡API使用的接口核验,目前为保留字段,可为空
微信api交互授权配置
我们将代码定位到第158行WeChatOptions节点,针对以下节点进行设置:
- WxOpenAppId:微信小程序的Appid
- WxOpenAppSecret:微信小程序的AppSecret
- WxOpenToken:微信服务消息推送的核验令牌。(管理端无需设置)
- WxOpenEncodingAESKey:微信服务消息推送消息的加密密钥。(管理端无需设置)
以前四个内容:
WxOpenAppId、WxOpenAppSecret可以通过微信后台直接获取。可参考【】
通过以上的设置,源代码基础的运行配置就配置好了,下一步我们进行项目的发布。