开发者中心 开发者中心
  • 简体中文
  • English
视频教程
敢为云网站
  • 6.0版本
  • 6.1 版本
视频教程
敢为云网站
  • 平台概述
  • 平台功能
  • 平台安装
  • 开发者指南
    • 协议插件开发
    • 扩展插件开发
    • 报警插件开发
    • 应用插件开发
      • 前端Web界面开发
      • 前端H5界面开发
      • 后端接口开发
        • 模板引擎
        • 基础开发
        • 内置特性
        • 常见FAQ
          • 插件加载成功与否确认
          • 插件加载异常
          • 获取Web API程序运行目录错误
          • 上下文连接数据库异常
          • 数据库存储日期或界面显示日期错误
          • 如何扩充语言
          • 如何获取当前请求文化名称
          • 接口请求防 SQL注入特殊字符限制
          • 隐私数据安全传输
          • 隐私数据安全存储
          • 模型新增m列,但表实际新增列少于m
      • 工作流程开发
      • 插件打包和发布
      • IoTCenter产品插件化模块单元测试
    • Web可视化开发
    • 3D可视化开发
    • 桌面可视化开发
    • 小程序开发
    • 应用模块接口
  • 项目实战
  • 附录

常见FAQ

# 插件加载成功与否确认

# 浏览器访问Web

当我们通过浏览器访问Web时,才会激活底层核心路由中间件加载所有插件,这是加载插件的首要前置时机

# Debug级别详细日志输出

通过修改平台日志配置文件最小化日志级别,确认日志文件是否已输出注册插件服务即插件里Startup中的ConfigureServices方法和构建插件管道即插件里Startup中的Configure方法。

我们通过如下日志文件输出举个栗子,注册插件服务【Ganweisoft.IoTCenter.Module.Login】耗时:2041ms,代表已调用插件Ganweisoft.IoTCenter.Module.Login中的ConfigureServices方法注册服务且耗时2s左右。构建插件管道【Ganweisoft.IoTCenter.Module.Login】耗时:59ms,代表已调用插件Ganweisoft.IoTCenter.Module.Login中的Configure方法构建管道且耗时59毫秒。

注意事项:若无开发的插件名称输出,说明插件名称不满足约定规范不予加载(插件名称必须包含IoTCenter.Module且拼写正确)。

# 插件加载异常

排除开发的插件启动有Bug,需自行排查外,若插件引入了额外的依赖则会导致插件解析异常从而可能会阻塞平台无法正常启动。

# 获取Web API程序运行目录错误

使用Application.BaseDirectory位于命名空间IoTCenterCore.Modules,而非AppContext.BaseDirectory。

# 上下文连接数据库异常

请勿删除默认模板中对EF Core上下文连接数据库服务的自动注册,否则将抛连接数据库等异常影响插件业务。

# 数据库存储日期或界面显示日期错误

# 日期参数格式传递错误

前端传递日期类型参数到后台时,不能携带如下时区部分格式时间:

  1. 无时差UTC时间即带Z的格式:'2023-11-10T05:00:00.000Z'

  2. ±HH:mm时区格式:'2023-11-10T05:00:00+05:00'

# 数据库日期格式类型错误

针对PostgreSQL、GaussDB、KingbaseES数据库日期类型应指定:timestamp without time zone。

# 如何扩充语言

默认仅支持中文和英文,我们可以通过程序运行目录配置文件appsettings.json下Localization节点新增扩充语言支持。

比如我们要扩充繁体,配置如下:

# 如何获取当前请求文化名称

使用CultureInfo.CurrentUICulture.Name,获取到的名称将是比如zh-CN,en-US等。

# 接口请求防 SQL注入特殊字符限制

若接口请求时响应:请求参数存在非法字符,说明请求存在基本的 SQL特殊字符等等,此时 根据实际情况分析,若不存在防SQL注入情况,可在接口 Action 上增加[skipCustomFilterAttribute]特性忽略此校验限制

例如:

[skipCustomFilterAttribute]
[HttpPost]
public async Task<operateResult> CreateAsync([FromBody]CreateAppRequest reguest)
{

}

# 隐私数据安全传输

涉及公民身份证、手机号、邮箱等等隐私信息时,建议进行安全加密传输,平台使用RSA非对称算法加解密,前端通过RSA公钥对相关隐私文本进行加密,后端利用构造函数注入IRSAAlgorithm接口调用Decrypt方法解密,加密同理

# 隐私数据安全存储

涉及公民身份证、手机号、邮箱等等隐私信息时,建议进行加密存储,平台使用AES对称算法加解密,后端利用构造函数注入GrpcToolServiceImpl接口调用AesEncrypt/AesDecrypt对相关隐私文本进行加解密操作

# 模型新增m列,但表实际新增列少于m

**模型属性定义和数据库表列需一致匹配。**请检查数据库表是否存在列对应在模型中没有,若表中列没用就删除或者模型补充表中相应字段都可解决该问题

上次更新: 2025/8/6 17:40:10

← 内置特性 工作流程开发→

目录
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式