net core应用在linux中差异记录
window平台和linux平台部署应用,运行表现可能会存在差异,遇到就随手记录下,欢迎补充:
序号 | 差异 | 解决 |
---|---|---|
1 | 发布镜像存在时区问题 | 使用release模式发布,并设置时区 |
2 | 应用场景批量插入数据到mysql,存在一个序列化数据问题,发现存入到mysql中时间字段变成了0000-00-00 00:00:00,但windows上应用插入到mysql的时间是正常的 | 序列化字符串时,需要将日期转换一下。ToString("yyyy-MM-dd HH:mm:ss") |
3 | linux和windows换行存在差异: | 需要手动判断一下,以区分RuntimeInformation.IsOSPlatform(OSPlatform.Linux):: linux(\n)、windows(\r\n)、macos(\r) |
4 | 相同宿主机下,不同镜像如何相互访问。eg:同一个宿主机,A应用镜像需要访问b数据库镜像 | 两种方式:1.两个镜像使用bridge方式连接,或者在docker compose文件中定义桥接,然后一起发布镜像;2.由于不方便重新发布mysql镜像或容器,可以使用--link方式。 docker run -di --name=containA --link containBmysql:mysql5737 imageA ;imageA为镜像id或名、containA为要创建容器名称、containBmysql为需要--link的容器名称、因为是mysql数据库,推荐使用别名,连接mysql使用,此处为mysql5737。特别注意:link方式后,二者是同一个网段,故可以相互访问,mysql的端口,需要更改为mysql的端口,而非mysql映射到宿主机暴露的端口。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通