我似乎遇到了问题,我不确定下一步该去哪里尝试解决这个问题。
我有一个 Node/express Web 应用程序,它严重依赖于对我们合作伙伴的外部 api 请求。当向一个特定客户端的 API 发出请求时,身份验证和初始请求会起作用,但一旦我尝试向它们上传文件,我的日志上就会出现读取 ECONNRESET 错误。
当我在我的计算机上本地复制此内容时,我没有收到任何错误并且文件上传正确。
为什么这种情况只会发生在我部署的 azure 应用程序服务上而不是本地?
有哪些潜在原因?蒂亚
我尝试更新应用程序服务中的节点版本,并审核所有 npm 包以查看是否存在问题。
Azure 中的外部 API 请求将源自与本地测试时不同的公共 IP 地址。
您在 Azure 中可能还具有网络安全机制,例如防火墙和网络安全组。
您应该首先验证您是否能够连接到外部 API 端点。
<yourwebapp>
.scm.azurewebsites.netTest-NetConnection -ComputerName <hostname> -Port 443
这将确定 Azure 与外部提供商之间是否存在连接问题。如果连接成功,它将返回值
True
;如果连接被 Azure 网络设置或提供商阻止,则返回 False
。
一些提供商运营 IP 白名单。我管理着多个平台,在这种情况下,通常需要请求提供商添加另一个 IP。
您可以在 Kudu 中使用 PowerShell 来识别您的提供商可能需要的公共 IP 地址:
(Invoke-RestMethod -Uri "https://api.ipify.org").ip