连接Azure Bot时Bot Framework无法正常工作的问题咨询
问题根因
Azure Bot服务在「Test in Web Chat」场景下,会先向你配置的消息端点的*根路径/*发送GET请求做服务可用性校验。你本地运行的Echo Bot默认仅处理/api/messages路径的Bot Framework协议请求,没有适配根路径的校验请求,所以会出现大量未处理的根路径请求日志。
需实现的处理逻辑
- 给根路径
/的GET请求添加极简处理逻辑,直接返回200状态码即可,不需要返回额外业务内容,仅用于告知Azure Bot服务当前服务可达。
不同技术栈的示例实现:- C# :在Program.cs入口添加路由规则
app.MapGet("/", () => Results.Ok()); - Python Flask:新增路由
@app.route('/', methods=['GET']) def health_check(): return '', 200 - Node.js:新增路由
app.get('/', (req, res) => res.sendStatus(200))
- C# :在Program.cs入口添加路由规则
- 先确认Azure Bot配置页的消息端点是否填写完整:必须带上你本地Bot的消息处理路径后缀,格式为
https://<你的ngrok域名>/api/messages,如果只填了ngrok根域名,正常的业务消息请求也会打到根路径,就算加了健康检查逻辑也无法正常交互。 - 配置完成后重启本地Bot服务,如果ngrok公网地址有变更,同步更新Azure Bot的消息端点配置,再进入「Test in Web Chat」测试即可。
内容的提问来源于stack exchange,提问作者poiuytrez
相关产品推荐
相关产品推荐

