Angular 14生产环境调用双API异常:一个成功另一个返回404 Not Found
问题描述
- 拥有两个API子域名,分别部署在不同VNet中,使用相同证书
- 一个后端基于PHP开发部署在Apache服务器,另一个基于.NET 6开发部署在IIS 10
- Angular 14应用调用两个API时,一个返回成功状态,另一个在生产环境抛出404错误;本地环境下两个API均可正常响应
排查建议
网络与VNet配置检查
- 确认生产环境中Angular应用所在网络可访问.NET 6 API对应的VNet,检查VNet peering、防火墙规则、网络安全组(NSG)是否允许流量通过
- 用
nslookup或dig命令验证API子域名在生产环境的DNS解析是否正确,确认域名指向的IP为目标服务器地址 - 检查.NET 6 API的端口(默认HTTPS为443)在生产环境是否开放,确认防火墙未拦截该端口
IIS与.NET 6配置检查
- 检查IIS中.NET 6 API站点的绑定配置:确认域名绑定正确、证书安装关联正常、端口设置无误
- 查看IIS日志(默认路径
C:\inetpub\logs\LogFiles),定位404请求的详细记录,确认请求URL路径是否与API路由匹配 - 验证.NET 6 API的路由配置:检查
Program.cs中的路由定义,确保生产环境的路由前缀、控制器路由与本地环境一致 - 检查.NET 6应用的发布配置:确认发布包含所有必要文件,
web.config配置正确,ASPNETCORE_ENVIRONMENT等环境变量符合生产环境要求
证书与HTTPS检查
- 确认.NET 6 API所在IIS的证书安装正确,检查证书有效期、域名匹配度,避免因证书问题导致请求拦截重定向引发404
- 核对Angular应用中调用.NET 6 API的请求URL,确认HTTPS协议、域名、路径无拼写错误,注意路径大小写(IIS默认不敏感,但路由配置可能有特殊设置)
跨域(CORS)检查
- 确认.NET 6 API的CORS配置允许Angular应用的生产域名访问,检查
Program.cs中的AddCors和UseCors配置,避免CORS拦截导致的伪装404(部分场景下CORS错误会被前端误报为404)
内容的提问来源于stack exchange,提问作者M. Monjurul Haque shah
相关产品推荐
相关产品推荐

