ASP.NET Core 8 Web API部署Azure App Service遇404错误求助
ASP.NET Core 8 Web API部署Azure App Service后404问题排查与解决
以下是针对你遇到的部署后404问题的具体排查和解决步骤:
1. 确保部署的是发布后的编译产物
你当前直接部署API项目文件夹的方式存在问题——Azure App Service无法直接编译.NET项目源代码,必须上传已发布的编译产物:
- 在本地API项目目录下执行发布命令:
dotnet publish -c Release -o ./publish
- 完成后,将生成的
publish文件夹内的所有内容部署到Azure App Service,而非原API项目文件夹。
2. 验证Azure App Service的.NET版本配置
即使创建时选择了.NET 8 LTS,仍需确认配置是否正确:
- 登录Azure门户,进入你的App Service资源
- 左侧导航栏选择「配置」→「常规设置」
- 在「堆栈设置」区域,确认:
- 运行时堆栈:
.NET 8 (LTS) - 运行时:
ASP.NET Core
- 运行时堆栈:
3. 检查并设置正确的启动命令
Windows环境下的App Service需要明确的启动命令来运行.NET应用:
- 同样在「配置」→「常规设置」的「启动命令」栏,根据你的发布类型设置:
- 若为框架依赖发布(默认方式):填写
dotnet API.dll(API是你的项目名称,对应生成的dll文件名) - 若为自包含发布:填写
API.exe
- 若为框架依赖发布(默认方式):填写
4. 查看应用日志定位启动错误
404可能是应用启动失败导致的,而非路径问题:
- 在Azure门户的App Service资源中,左侧导航栏选择「日志」→「应用服务日志」
- 开启「文件系统日志」,设置日志级别为「信息」或「详细」
- 切换到「日志流」,查看应用启动时的具体错误信息(如依赖缺失、配置错误等)
5. 确认Swagger与接口路由配置
你的代码中中间件顺序和路由配置是正确的,但可以做额外验证:
- 确保
WeatherForecastController的路由属性是[Route("api/[controller]")],这样接口路径应为/api/weatherforecast - 代码中未限制Swagger仅在开发环境启用,部署后正常启动即可访问
/swagger
内容的提问来源于stack exchange,提问作者DapperDanh
相关产品推荐
相关产品推荐

