调用Dapr Sidecar时出现响应头读取错误求助
排查Dapr调用报错:连接被远程强制关闭的思路
核心线索:缓冲区内容"Cirrato Client 21.5.0"
错误里的缓冲区内容说明Dapr Sidecar尝试连接的127.0.0.1:5001端口并非你的dotnet应用,而是被Cirrato Client程序占用,这是首要排查方向。
1. 验证端口占用情况
- 在Windows上执行命令:
netstat -ano | findstr :5001,查看5001端口的占用进程PID。 - 打开任务管理器,通过PID确认占用端口的是否是你的dotnet应用:如果是Cirrato Client,直接终止该进程,或修改你的应用端口(比如把
--app-port改为5002)重新启动。
2. 确认Dapr与应用的通信协议匹配
- 检查你的dotnet应用是否确实监听HTTP的5001端口:查看
launchSettings.json中的applicationUrl配置,确保包含http://localhost:5001。 - 启动Dapr时显式指定通信协议,避免自动检测出错:
dapr run --app-id blabla --app-port 5001 --dapr-http-port 50001 --app-protocol http dotnet run
3. 排查本地安全软件拦截
- 临时关闭机器上的防火墙、杀毒软件,重新测试调用。如果恢复正常,需将
daprd.exe和你的dotnet应用进程添加到安全软件的白名单中,允许本地通信。
4. 统一Dapr版本
- 对比报错机器和正常机器的Dapr版本:执行
dapr --version查看。 - 若版本不一致,升级到相同版本,或重新初始化Dapr:
dapr uninstall && dapr init
5. 调整应用启动顺序
- 先手动启动dotnet应用:
dotnet run,确认应用完全就绪(比如能直接访问http://localhost:5001/weatherforecast)后,再启动Dapr Sidecar:dapr run --app-id blabla --app-port 5001 --dapr-http-port 50001
内容的提问来源于stack exchange,提问作者bahman etghani
相关产品推荐
相关产品推荐

