开发者中心 开发者中心
  • 简体中文
  • English
视频教程
敢为云网站
  • 6.0版本
  • 6.1 版本
视频教程
敢为云网站
  • 平台概述
  • 平台功能
  • 平台安装
    • 依赖环境
    • 平台安装部署
    • 3D客户端安装
    • 常见问题
      • 启动IoTCenter服务时报错误“Couldn't find a valid ICU package”
      • 启动IoTCenter服务时报错误“GLIBCXX_3.4.14 not found”
      • Web登录提示“用户名或密码错误”
      • 网页使用HTTP端口44381无法访问问题
      • 启动网关和Web程序失败,提示”Access denied for user 'root'@'10.44.78.134' (using password: NO)”
      • 启动Web程序失败,提示”unable to open database file”
      • 使用mysql数据库报错,提示 ”maxallowedpacket”
      • App连接失败,提示“未连接上服务!”
      • 服务启动正常,但HTTPS Web连接不上
      • 授权文件损坏
  • 开发者指南
  • 项目实战
  • 附录

常见问题

# 常见问题

# 启动IoTCenter服务时报错误“Couldn't find a valid ICU package”

问题现象
  • 错误日志输出示例:

问题原因
  • 当前操作系统缺少ICU包。

  • ICU 是用于支持 Unicode 的开发包,有些Linux系统做了精简处理,可能移除了ICU,这时需要手动安装。

解决方案
  • 手动安装ICU包,以Debian/CentOS为例,执行命令yum install icu:

    yum install icu
    

    如果看到成功安装的消息即表示软件包已成功安装。

    如果无法安装或安装后依然无法解决问题,只能修改项目的配置文件,按照以下步骤操作。

    • 打开IoTCenter/bin/GWHost1.runtimeconfig.json配置文件,加入以下的语句
      {
          "runtimeOptions":{
              "configProperties": {
                  "System.Globalization.Invariant": true
              }
          }
      }
      
    • 打开IoTCenter/IoTCenterWeb/publish/IoTCenterWebApi.runtimeconfig.json配置文件,加入以下语句:
      {
          "runtimeOptions":{
              "configProperties": {
                  "System.Globalization.Invariant": true
              }
          }
      }
      

# 启动IoTCenter服务时报错误“GLIBCXX_3.4.14 not found”

问题现象
  • 错误日志输出示例:

    dotnet: /lib64/libstdc++.so.6: version \`GLIBCXX_3.4.21' not found (required by dotnet)
    dotnet: /lib64/libstdc++.so.6: version \`GLIBCXX_3.4.20' not found (required by dotnet)
    
问题原因
  • 当前操作系统的libstdc++.so.6版本比较旧。
解决方案
  • 检查本地libstdc++.so.6支持的版本:

    strings /lib64/libstdc++.so.6 \| grep GLIBC

    打印举例:

    GLIBCXX_3.4 GLIBCXX_3.4.1 GLIBCXX_3.4.2 GLIBCXX_3.4.3 GLIBCXX_3.4.4 GLIBCXX_3.4.5 GLIBCXX_3.4.6 GLIBCXX_3.4.7 GLIBCXX_3.4.8 GLIBCXX_3.4.9 GLIBCXX_3.4.10 GLIBCXX_3.4.11 GLIBCXX_3.4.12 GLIBCXX_3.4.13 GLIBCXX_3.4.14 GLIBCXX_3.4.15 GLIBCXX_3.4.16 GLIBCXX_3.4.17 GLIBCXX_3.4.18 GLIBCXX_3.4.19 GLIBC_2.17 GLIBCXX_DEBUG_MESSAGE_LENGTH 其中并没有服务要求的GCC版本 “GLIBCXX_3.4.20”,“GLIBCXX_3.4.21”。

  • 检查本地libstdc++.so.6支持的版本:

    1. 以Debian或CentOS为例,打开链接:

      http://ftp.de.debian.org/debian/pool/main/g/gcc-10/ (opens new window)

    2. 选择最新版本的GCC下载到本地,例如:

      libstdc++6_4.7.2-5_i386.deb

      ARM平台的libstdc++6_10.1.0-4_arm64.deb

  • 解压文件:

    ar -x libstdc++6_10.1.0-4_arm64.deb && tar xvf data.tar.xz

  • 拷贝文件并建立软链接:

    1. 拷贝解压出来的文件
      cd usr/lib/aarch64-linux-gnu
      cp libstdc++.so.6.0.28 /lib64
      cd /lib64
      rm libstdc++.so.6 //删除原有的链接文件
      
    2. 建立新文件的软链接
      ln -s /lib64/libstdc++.so.6.0.28 libstdc++.so.6 
      chmod a+x libstdc++.so.6.0.28
      
  • 检查是否升级成功。

    执行dotnet命令,检查打印:

# Web登录提示“用户名或密码错误”

问题现象
  • 错误示例:

问题原因
  • 用户名密码输入错误,需确认是否输入正确。

  • 软件未进行数据库升级操作。

  • 软件已执行数据库升级操作,但后期使用中更换了授权文件。

解决方案
  • 核查是否正常输入用户名和密码,发布包中默认存在用户,请联系相关人员获取

  • 核查数据库是否执行了升级加密操作,3.1.11.1版本之后GWUser及GWRole表相关数据需进行升级加密方可正常登录,操作步骤如下。

    1. GWEncrypt.dll加密工具升级:选择选项2进行数据库升级操作,输入y开始执行,执行完成后,输入c退出加密工具,重新登录网页核查能否正常登录。

    2. Web配置自动升级,完成Web客户端appsettings.json如下配置后,首先需启动网关进程,待网关进程成功启动后,再启动Web进程,Web进程启动完成后会自动开始执行升级数据库,升级过程中Web进程时会输出日志,等待5-10S后无日志输出时重新登录网页核查能否正常登录。

  • 核查数据库是否执行了升级加密操作,但是更换了授权文件,如果更换了授权文件,原加密数据将无法解密会导致登录失败,此时需要使用备份数据恢复登录,操作步骤如下。

    1. 打开数据库,核查是否存在GWRole_AutoBack和GWUser_AutoBack表

    2. 移除GWUser和GWRole表,将GWRole_AutoBack表重命名为GWRole表,GWUser_AutoBack表重命名为GWUser表。

    3. 将IoTCenter/IoTCenterWeb/publish/appsettings.json中的IsAesUpdateSuccess修改为false。

    4. 执行步骤二中的GWEncrypt.dll或者配置Web重新升级数据库。

# 网页使用HTTP端口44381无法访问问题

问题现象
  • 错误示例:

问题原因
  • IoTCenter6.0及以后版本默认移除了HTTP端口,只支持HTTPS协议44380。

解决方案
  • 如果需求使用HTTP端口,修改IoTCenter\IoTCenterWeb\publish目录下的appsettings.json文件,找到HttpPort配置项,输入自定义HTTP端口,比如44481,重新启动Web进程即可使用HTTP协议访问Web:

    如果看到Web程序启动日志中包括成功以上Listening日志,表示HTTP协议已成功启用了。

# 启动网关和Web程序失败,提示”Access denied for user 'root'@'10.44.78.134' (using password: NO)”

问题现象
  • 网关无法启动,日志中包含Access denied for user 'root'@'10.44.78.134' (using password: NO)拒绝访问

问题原因
  • IoTCenter使用MySQL数据库,但是AlarmCenterProperties.xml中Mysql密码配置错误,导致数据库连接失败,程序无法启动。
解决方案
  • 方法一:使用IoTCenter\bin中的加密工具GWEncrypt.dll加密数据库密码更新AlarmCenterProperties.xml中的Mysql数据库密码;配置我呢见或者使用:

    重启启动网关程序,核查是否报错。

  • 方法二:检查版本,若使用IoTCenter3.1.14.0版本,数据库升级方式发生变化,默认用户帐号升级变更为通过访问接口升级:/IoT/api/v3/SystemConfig/pdateAesDatabase

    注:待页面响应成功信息后即升级成功

# 启动Web程序失败,提示”unable to open database file”

问题现象
  • 启动Web程序后,Web控制台报如下错误,无法打开Sqlite数据库文件

问题原因
  • 核查IoTCenter\data\AlarmCenter\AlarmCenterProperties.xml中的数据库路径是否正确。
  • 核查数据库文件是否损坏。
解决方案
  • 核查IoTCenter\data\AlarmCenter\AlarmCenterProperties.xml中的数据库路径是否正确。

  • 核查数据库文件是否损坏,如损坏则无法继续使用此数据库,需要使用产品发布包中的默认数据库,注意:SQLite数据库极易损坏,项目中不推荐使用SQLite数据库,推送使用MySQL数据库。

# 使用mysql数据库报错,提示 ”max_allowed_packet”

问题现象
  • 使用mysql数据库在应用商店下载插件。

问题原因
  • mysql默认加载的数据文件不超过1M
解决方案
  • 修改mysql配置文件Windows:my.ini;Linux:my.cnf找到max_allowed_packet 字段,修改其值为200M。

  • 在客户端连接使用:show VARIABLES like '%max_allowed_packet%' 脚本进行查看max_allowed_packet与slave_max_allowed_packet都会变大。

    show VARIABLES like '%max_allowed_packet%'
    

# App连接失败,提示“未连接上服务!”

问题现象
  • 在app上输出ip、用户名及密码后,点击登录,提示“未连接上服务!”

    tapd_39907332_base64_1630491617_98

问题原因
  • 默认情况下对web浏览器访问安全会做访问源限制,但若应用程序若运行在app内,不存在安全问题,除非攻击app自身,所以需做配置修改。
解决方案
  • 修改IoTCenter/IoTCenterWeb/publish/下的appsettings.json文件中的配置,如下图:

    "AllowOrigins": ["\*" ] web和app都可访问,无限制;
    "AllowOrigins": [ "https://localhost:44380", "http://localhost:44381" ]只能通过web访问。
    

# 服务启动正常,但HTTPS Web连接不上

问题现象

备注:出现在6.0及其之后的版本上,为解决了华为EBG安全问题的版本。

通过HTTPS Web无法加载登录界面:

IoTCenterWebApi的日志中有SslStream的报错,示例如下:

问题原因

访问Web的主机是Windows7主机,其本身只缺省支持TLS1.1版本,而IoTCenter经EBG安全测试后已升级到默认只支持TLS1.2。所有在Windows7主机上,通过浏览器无法访问IoTCenter HTTPS网站。

解决方案

方案一:IoTCenter启用HTTP协议,然后通过HTTP协议访问IoTCenter。

方案二:配置Windows7启用TLS1.2版本。

请参考微软官方方法:

https://support.microsoft.com/zh-cn/topic/更新了-以在-windows-中的-winhttp-中启用-tls-1-1-和-tls-1-2-作为默认安全协议-c4bd73d2-31d7-761e-0178-11268bb10392 (opens new window)

可到以下网址下载Windows7的更新包:

http://catalog.update.microsoft.com/v7/site/search.aspx?q=kb3140245 (opens new window)

# 授权文件损坏

问题现象

服务器硬件改变会导致软件登录提示无授权,如当时注册时是双网卡开启,后来禁用了一张网卡或换了网卡、内存等硬件。

问题原因
  • 授权时间过期。

    IMG_256

解决方案
  • 更换授权文件

    IoTCenter软件最高权限管理员给出最新的授权文件后放置到opt/ganwei/IoTCenter/bin中。

上次更新: 5/7/2024, 9:32:29 PM

← 3D客户端安装 入门→

目录
启动IoTCenter服务时报错误“Couldn't find a valid ICU package”
启动IoTCenter服务时报错误“GLIBCXX_3.4.14 not found”
Web登录提示“用户名或密码错误”
网页使用HTTP端口44381无法访问问题
启动网关和Web程序失败,提示”Access denied for user 'root'@'10.44.78.134' (using password: NO)”
启动Web程序失败,提示”unable to open database file”
使用mysql数据库报错,提示 ”maxallowedpacket”
App连接失败,提示“未连接上服务!”
服务启动正常,但HTTPS Web连接不上
授权文件损坏
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式