You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

ASP.NET Core Web API部署至Azure后出现500内部服务器错误求助

解决Azure发布ASP.NET Core Web API后出现的500内部服务器错误

我看了你的请求跟踪日志,一眼就发现了核心问题——这是协议与端口不匹配导致的TLS握手失败,直接触发了500错误。从日志里的forward-request记录可以看到关键错误:

{"messages": ["The underlying connection was closed: An unexpected error occurred on a send.", "Error occured while calling backend service.", "The handshake failed due to an unexpected packet format."]}

对应的转发请求URL是:https://xxx.azurewebsites.net:80/Tests——这里的矛盾很明显:HTTPS协议默认使用443端口,而你却指定了HTTP协议的80端口,强行用HTTPS连接80端口必然会导致TLS握手失败。

下面是具体的解决方案步骤:

1. 修正API Management的后端服务配置

  • 登录Azure门户,打开你的API Management实例
  • 找到你发布的API,进入它的设置页面
  • 定位到后端配置区域,修改后端服务的URL:
    • 如果你的Web App开启了HTTPS(生产环境推荐),直接使用https://xxx.azurewebsites.net(无需显式指定端口,默认会用443)
    • 如果你的Web App确实使用80端口(不推荐生产环境),则把URL改为http://xxx.azurewebsites.net:80
  • 保存配置后,重新测试API请求

2. 验证Web App的HTTPS与数据库配置

  • 进入你的Azure Web App实例,打开配置 -> 常规设置,确认HTTPS only选项是否开启(生产环境建议开启):如果开启,确保后端服务使用HTTPS协议;如果关闭,要保证协议和端口严格匹配
  • 检查Web App的应用程序设置里的数据库连接字符串是否正确,同时确认Azure SQL数据库的防火墙规则允许Web App访问(可以设置"允许Azure服务和资源访问此服务器")

3. 开启详细日志排查潜在问题

如果修正端口后仍有问题,可以开启Web App的详细日志:

  • 进入Web App的监控 -> 日志流
  • 实时查看服务器端的错误日志,确认是否存在数据库连接失败、权限不足等其他隐藏问题

内容的提问来源于stack exchange,提问作者SaibNZ

火山引擎 最新活动