首页 > 数据库技术 > 详细

NCF 数据库错位导致站点访问不了

时间:2021-02-02 11:27:01      阅读:39      评论:0      收藏:0      [点我收藏+]

简介(图片推荐浏览器150%查看)

场景发生在,我们本地使用NCF开发了一个应用,前提是应用使用了Redis,如果没有使用Redis,则不会遇到以下的问题,当要迁移到线上或者是迁移到别的地方的时候

这样的情况会出现2个问题:

1.直接报错,如下图所示技术分享图片

 

 

 2.没有报错,正常连接了,但是线上环境读取的却是本地测试环境的数据(这个问题不好排查,一定要注意,要建立一个有标识性的数据才能排查到现在是连接的哪个数据库)

 

步骤

1.检查Senparc.Web/App_Data/Database/SenparcConfig.config的使用的对应数据库配置是否正确,用工具检查连接是否正常

2.检查Senparc.Web/appsetting.json中使用的节点  SenparcSetting 下的 Cache_Redis_Configuration 配置是否正确,用工具检查连接是否正常

3.如步骤1,2都没有问题,则要检查Redis中 Senparc:NcfDefaultCache:__SENPARC_DATABASE_CONNECTION_CONFIG_KEY 这个节点配置的数据库连接是否正确

4.都检查完以后,删掉无效的连接,重新运行应用

 

案例

1.本地的数据库设置

技术分享图片

 

    <SenparcConfig>
        <Id>3</Id>
        <Name>Local-SqlServer</Name>
        <!--本地Demo默认数据库(可在appsettings.json中修改DatabaseName配置)-->
        <ConnectionStringFull><![CDATA[Server=localhost;Database=test; User ID=test; Password=123456;Application Name=zmz]]></ConnectionStringFull>
        <ApplicationPath><![CDATA[/]]></ApplicationPath>
    </SenparcConfig>

 

 2.本地的Redis设置

技术分享图片

 

  //CO2NET 设置
  "SenparcSetting": {
    //以下为 CO2NET 的 SenparcSetting 全局配置,请勿修改 key,勿删除任何项

    "IsDebug": true,
    "DefaultCacheNamespace": "NcfDefaultCache",

    //分布式缓存
    //"Cache_Redis_Configuration": "#{Cache_Redis_Configuration}#", //Redis配置
    //"Cache_Redis_Configuration": "localhost:6379",//不包含密码
    "Cache_Redis_Configuration": "localhost:6379,password=123456,connectTimeout=1000,connectRetry=2,syncTimeout=10000,defaultDatabase=4",//密码及其他配置
    "Cache_Memcached_Configuration": "#{Cache_Memcached_Configuration}#", //Memcached配置
    "SenparcUnionAgentKey": "#{SenparcUnionAgentKey}#" //SenparcUnionAgentKey
  }

 

 

3. 设置完以后,运行应用的时候就会生成Redis的项

技术分享图片

 

{
  "Local-SqlServer": {
    "Id": 3,
    "Name": "Local-SqlServer",
    "ConnectionStringFull": "Server=220.218.0.223;Database=test; User ID=test; Password=123456;Application Name=zmz",(检查这里)
    "ApplicationPath": "/"
  },
  "Local-SQLite": {
    "Id": 2,
    "Name": "Local-SQLite",
    "ConnectionStringFull": "Filename=:memory:",
    "ApplicationPath": "/"
  },
  "Local-MySql": {
    "Id": 4,
    "Name": "Local-MySql",
    "ConnectionStringFull": "Server=localhost;Database=NCF;Uid=root;Pwd=RootPwd4@NeuCharFramework;",
    "ApplicationPath": "/"
  },
  "Client-SqlServer": {
    "Id": 1,
    "Name": "Client-SqlServer",
    "ConnectionStringFull": "Server=192.168.8.254,14480;Database=SCF_XFY; User ID=sa; Password=@WSXzaq1;Application Name=fxu",
    "ApplicationPath": "/"
  }
}

 

 4.检查3中Redis中缓存的数据库连接是否是正确的,如果不正确,删掉这些节点,重新运行你的应用即可

 

以上情况为我遇到的,欢迎大家多多交流

NCF 数据库错位导致站点访问不了

原文:https://www.cnblogs.com/zhao365845726/p/14360150.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!