Sam*_*Sam 1 azure azure-virtual-network azure-sql-database azure-web-app-service
我有一个托管在 Linux Azure WebApp 上的 AspNetCore3.1 应用程序。我已启用相同的专用端点。一切都像魅力一样。现在,为了添加数据库交互,我为 Web 应用程序启用了系统分配的托管身份 (MI),并将其作为包含用户添加到我的 Azure SQL PaaS 中。但是,我在数据库连接时遇到错误:
连接被拒绝,因为“拒绝公共网络访问”设置为“是”( https://learn.microsoft.com/azure/azure-sql/database/connectivity-settings#deny-public-network-access )。要连接到此服务器,请使用虚拟网络内部的专用终结点 ( https://learn.microsoft.com/azure/sql-database/sql-database-private-endpoint-overview#how-to-set-up- private-link-for-azure-sql-database)。在 Microsoft.Data.ProviderBase.DbConnectionPool.CheckPoolBlockingPeriod(异常 e)
也为 SQL DB 配置了专用端点。该子网与 webapp 的专用终结点位于不同的子网但位于同一 VNet 中。
-更新:我已经验证即使我从 webApp 中删除 Private Endpoint,仍然会引发错误。
我在这里想念什么?
该错误消息表明您正在尝试从 Web 应用程序通过公共网络访问 SQL Server。您需要限制 VNet 中 Web 应用程序的传出流量,然后您可以使用 SQL Server 的专用终结点。阅读使用 Azure Web App 的专用终结点。
专用端点仅用于传入 Web 应用程序的流量。传出流不会使用此专用终结点,但您可以通过 VNet 集成功能将传出流注入到不同子网中的网络。
Microsoft.Sql当您在 SQL Server 中添加专用终结点连接时,您将看到您为 SQL Server 创建专用终结点的 VNet 中存在服务终结点和专用终结点。
通过专用链接将 Azure Web 应用程序访问专用网络内的 SQL Server。您需要在同一 VNet 的另一个空子网中为 Web 应用程序启用 VNet 集成。默认情况下,你的应用程序无法与 Azure DNS 专用区域配合使用。要使用 Azure DNS 专用区域,您需要添加以下应用程序设置:
WEBSITE_DNS_SERVER with value 168.63.129.16
WEBSITE_VNET_ROUTE_ALL with value 1
Run Code Online (Sandbox Code Playgroud)
通过上述两个应用程序设置WEBSITE_DNS_SERVER和 WEBSITE_VNET_ROUTE_ALL配置,从 Web 应用程序到 SQL 数据库,它解析为私有 IP 地址。
从 Web 应用程序到 SQL 数据库,其中应用程序设置具有使用私有 DNS 区域且无需配置的WEBSITE_DNS_SERVER值。它解析为公共 IP 地址。168.63.129.16WEBSITE_VNET_ROUTE_ALL
| 归档时间: |
|
| 查看次数: |
1603 次 |
| 最近记录: |