Direct Line App Service扩展在Azure Linux应用服务中出现404?需额外配置吗?
Bot Framework DirectLine 扩展部署Linux应用服务时/.bot路由404的解决配置
核心问题原因
Linux应用服务的默认路由转发规则和Windows环境存在差异,DirectLine App Service extension依赖的/.bot前缀路由无法被自动识别转发,导致请求返回404。
必要的额外配置步骤
- 添加路由重写规则
在项目根目录创建web.config文件(Linux部署下,该文件会被Azure ASP.NET Core托管环境识别),写入以下规则确保/.bot开头的请求被正确路由:<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="BotFrameworkDirectLine" stopProcessing="true"> <match url="^/.bot/(.*)" /> <action type="Rewrite" url="/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration> - 配置应用服务启动命令
在Azure门户的Linux应用服务「配置」页面,设置启动命令为:
确保服务监听端口与Linux应用服务默认端口(8080)一致,避免端口映射异常导致路由失效。dotnet 你的Bot程序集名称.dll --urls=http://0.0.0.0:8080 - 验证DirectLine扩展配置
在Azure应用服务资源中,确认DirectLine App Service扩展已正确安装,且扩展的Bot密钥、端点等配置参数与Windows部署时完全一致。
额外排查点
- 查看Linux应用服务的日志流,排查是否有路由匹配失败的具体错误信息,比如请求被拦截或转发规则未生效。
- 检查项目的
Program.cs(.NET 6+)或Startup.cs文件,确认没有自定义路由规则覆盖/.bot的默认路由映射。
内容的提问来源于stack exchange,提问作者Rodrigo Resua Riobo
相关产品推荐
相关产品推荐

