常见问题
# 常见问题
# 启动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/bin/GWHost1.runtimeconfig.json配置文件,加入以下的语句
# 启动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支持的版本:
以Debian或CentOS为例,打开链接:
http://ftp.de.debian.org/debian/pool/main/g/gcc-10/ (opens new window)
选择最新版本的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拷贝文件并建立软链接:
- 拷贝解压出来的文件
cd usr/lib/aarch64-linux-gnu cp libstdc++.so.6.0.28 /lib64 cd /lib64 rm libstdc++.so.6 //删除原有的链接文件 - 建立新文件的软链接
ln -s /lib64/libstdc++.so.6.0.28 libstdc++.so.6 chmod a+x libstdc++.so.6.0.28
- 拷贝解压出来的文件
检查是否升级成功。
执行
dotnet命令,检查打印:
# 修改HTTP/HTTPS访问端口
解决方案
- 修改IoTCenter\data\AlarmCenter目录下的AlarmCenterProperties.xml文件,找到HttpPort配置项,输入自定义HTTP端口,比如44481,重新启动Web进程即可使用HTTP协议访问Web:

# 使用mysql数据库如何对数据库密码进行加密
问题现象
网关无法启动,日志中包含Access denied for user 'root'@'10.44.78.134' (using password: NO)拒绝访问

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


重启启动网关程序,核查是否报错。
# 启动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、用户名及密码后,点击登录,提示“未连接上服务!”

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

"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版本。
请参考微软官方方法:
可到以下网址下载Windows7的更新包:
http://catalog.update.microsoft.com/v7/site/search.aspx?q=kb3140245 (opens new window)
# 如何更换授权文件
问题现象
当前授权到期或需要更新新授权
解决方案
- 放入授权文件
- windows环境:将给出的最新授权放到D:\ganwei\IoTCenter\bin中。
- Linux环境:将给出的最新授权放到opt/ganwei/IoTCenter/bin中。
如果之前使用的是mysql数据库则需要重新对数据库密码进行加密。 参考使用mysql数据库如何对数据库密码进行加密
重置平台账号密码
- 清空base_personnelinfo表与gwuser表。(注意清空这两张表会删除平台已有的所有用户数据)
- 重启平台,使用初始账号密码登录。(初始账号密码可咨询平台相关人员)
# 重置平台账号密码
问题现象
当平台所有账号均无法登录或其它需要重置平台账号的场景的情况下。
操作方法
清空base_personnelinfo表与gwuser表。(注意清空这两张表会删除平台已有的所有用户数据)
重启平台,使用初始账号密码登录。(初始账号密码可咨询平台相关人员)
# Mac环境下安装IoTCenter 运行时出现如下报错
问题现象

操作方法
放入对应的运行时目录中IoTCenterWeb\publish\runtimes\win-x64\native
重启平台即可。
← Desktop客户端安装 原理解析→