我有一个包含 3 个带有私有端点的应用服务的应用服务计划,从应用服务 B 到应用服务 C 的调用失败并显示 403 禁止错误

问题描述

我有一个应用服务计划,其中包含 3 个应用服务,所有 3 个应用都有专用端点。 前端调用--> 中间件调用--> 后端

从中间件到后端的调用失败,我在中间件的应用程序日志或日志流中没有看到任何错误,只有一条日志消息表明调用了后端。

当我直接从浏览器访问后端 url 时,我得到了响应。 例如https://backend.azurewebsites.net/hello 回复“你好”

当我尝试 tcpping backend.azurewebsites.net:443 时,从中间件的 kudu bash 我得到 错误的目标地址 从中间件到后端的 curl 命令失败,出现 403 Forbidden Error curl https://backend.azurewebsites.net/hello --> 403 禁止错误

中间件是 Linux 上的 Docker 容器, 后端运行时堆栈 Java 8、Java Web 服务器堆栈 - Linux 上的 JAVA SE(嵌入式 Web 服务器)

任何关于我在这里遗漏的指导都会有很大帮助。

解决方法

私有端点仅用于传入 Web 应用程序的流。

传出流不会使用这个私有端点, 可以使用 VNET 集成功能通过 VNET 路由来自应用服务的传出流。

请参考链接

https://docs.microsoft.com/en-us/azure/app-service/networking/private-endpoint

https://docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet#enable-vnet-integration

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...