惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
罗磊的独立博客
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
博客园 - 【当耐特】
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
博客园 - 司徒正美
博客园 - Franky
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Tailwind CSS Blog
Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
量子位
博客园 - 叶小钗
博客园_首页
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - USEGEAR

学习unigui【48】lucksheet表格的显示object 学习使用 处理Python对象和列表【5】 学习使用:创建 Python 可调用的 Delphi 函数【4】 学习使用TPythonDelphiVar组件 数据交换Delphi与Python传值【3】 学习使用 数据交换 Delphi 与 Python 传值【2】 学习使用 Python4Delphi 是什么【1】 学习unigui【47】扫码安装apk 学习unigui【46】让客户端浏览器可以选下载你的apk 学习unigui【45】UnimDatePicker等按钮汉化崩溃 学习unigui【44】如何和uinHTMLFrame打交道 学习unigui【43】如何和控件打交道 学习unigui【42】UnimDatePicker的使用 学习unigui【41】htmlframe的交互现象 学习unigui【40】加入监控墙-1 头大的内存泄漏 学习unigui【38】重新认识UUNIGUI--为什么这样快? 站在“架构与性能”层面重新审视 学习unigui【37】nginx的反向代理 ,程序中的重新定向 学习unigui【36】把数据导航放在Unidbgrid脚中 学习unigui【35】dbgrid字段宽度自适应 KingSADA的工业历史数据库的访问
学习unigui【39】单独文件在ms win server 上执行的坑
USEGEAR · 2025-10-19 · via 博客园 - USEGEAR

exe直接复制到ms windows server的目录下执行,ok没问题。由于要读取ini配置文件。导致出现莫名其妙的错误。

明明ini参数调整了,还是执行出问题,让你怀疑人生。

坑1自带记事本保存的 UTF-8 文件默认会加上 BOM (Byte Order Mark)的文件格式,当你保存后,实际上就是一个人妖。

FireDAC 的 INI 解析器(TMemIniFile / TFDIniFile) 并不会自动去掉 BOM。结果是:文件第一行前 3 个隐藏字节(EF BB BF)被当成 section 名的一部分。

特别是ini中包含中文是,比如 【水务】,记事本看起来没有问题,程序真正读出来的是乱码,根据该编码再去配置就会出现问题。

根本原因:
Windows 记事本保存 UTF-8 时添加 BOM,而 FireDAC 不支持带 BOM 的 INI。

正确做法:
用 Notepad++ 或 VS Code等 保存成 UTF-8 (无 BOM)

验证:
打开文件 → 菜单 “编码” → 选择 “转换为 UTF-8 无 BOM”,保存即可。

坑2:像 UniGUI、DataSnap、Indy 服务器、甚至 FireDAC 物理层,如果你连续调试多次、上次的进程没退出(还在监听 5433 / 8081 / 8077 之类的端口), 新的实例启动时就会报:

Could not bind socket
[FireDAC][Phys][PG][libpq] could not connect to server: Connection refused (10061)

根本原因:
TCP 端口已被旧进程占用。
Windows 处于 LISTENINGTIME_WAIT 状态。

解决方式: 

或者用: 

彻底清空旧实例。

再启动服务端 → socket 绑定成功 → FireDAC 可正常连接。