Business Central 22 HTTP请求无法在Fiddler中显示求解决方案
解决Fiddler无法捕获Business Central内部Web请求的方案
一、配置Business Central服务的代理参数
- 找到BC服务器安装目录下的
CustomSettings.config文件(默认路径类似C:\Program Files\Microsoft Dynamics 365 Business Central\XX\Service) - 添加或修改以下配置项:
<add key="WebProxyServer" value="127.0.0.1:8888" /> <add key="WebProxyBypassOnLocal" value="false" /> <add key="WebProxyUseDefaultCredentials" value="true" /> - 保存后重启BC服务(在服务管理器中找到
Microsoft Dynamics 365 Business Central Server重启)
二、调整Fiddler的监听与证书设置
- 打开Fiddler,进入
Tools > Options > Connections,勾选Allow remote computers to connect,确保监听端口为8888(与上述配置一致),重启Fiddler - 处理HTTPS请求:进入
Tools > Options > HTTPS,勾选Capture HTTPS CONNECTs和Decrypt HTTPS traffic,点击Actions > Export Root Certificate to Desktop - 将导出的证书导入到本地计算机的
受信任的根证书颁发机构存储中(而非当前用户存储):双击证书,选择本地计算机,按向导完成导入
三、排查BC代码中的代理绕过逻辑
- 检查自定义AL代码中是否存在硬编码跳过代理的逻辑,例如:
var HttpClient: HttpClient; Handler: HttpHandler; begin Handler := HttpClient.DefaultHandler(); Handler.Proxy := null; // 该设置会跳过代理,临时注释后测试 HttpClient.DefaultHandler(Handler); end; - 若存在类似设置,临时注释后重新发布扩展,再测试请求捕获
四、针对BC服务进程定向捕获
- 打开任务管理器,找到
Microsoft.Dynamics.Nav.Server.exe进程,记录其进程ID - 在Fiddler中进入
Rules > Customize Rules,找到OnBeforeRequest方法,添加以下代码:if (oSession.ProcessID == 你的BC进程ID) { oSession["ui-color"] = "orange"; // 将BC进程的请求标记为橙色,便于识别 } - 保存规则后,Fiddler会自动加载,BC发起的请求将被高亮标记
五、常见排坑点
- 若BC服务运行在
Local System账户下,代理设置可能失效:建议将服务账户改为具备本地登录权限的普通账户,再为该账户设置系统代理(控制面板>Internet选项>连接>局域网设置) - 测试优先调用简单HTTP接口(如
http://httpbin.org/get),排除HTTPS证书或复杂接口的干扰 - 确认Fiddler未启用请求过滤规则(如Filters选项卡中不要勾选Hide 304s或其他过滤条件)
内容的提问来源于stack exchange,提问作者TSL
相关产品推荐
相关产品推荐

