运行MongoDB的Azure Ubuntu VM的Azure AppSite连接问题

我最近通过Visual Studio使用ARMconfiguration了一个资源组。 它有一个运行MongoDB的Ubuntu VM,我可以成功地与SSH进入并与Mongo shell进行交互。

我也有一个运行WebAPI的应用程序站点,我希望能够使用私有IP访问MongoDB(MongoDB不应该直接在公有IP上访问)。 我修改了mongo.conf文件中的bindIp设置,使其绑定到127.0.0.1,10.0.0.4 。 我已经在WebAPI中设置连接string指向10.0.0.4与凭据(我testing了使用Mongo shell直接在虚拟机上通过SSH工作的凭据)。 此外还有一个网卡,虚拟networking和其他资源(链接网卡,存储等)。 所有资源都在同一个资源组中。

我在Application Insights中看到的错误是:

System.Net.Sockets.SocketException:尝试以访问权限禁止的方式访问套接字

任何人都可以阐明为什么我的Azure应用程序站点(WebAPI)无法访问我的Ubuntu虚拟机上运行的MongoDB – 我已经跑出了一些东西尝试。

此外,我还添加了一个GateWay子网,去了AppSite的networking节点,尝试安装VNET集成,但是它显示出我的networking灰色,有一个小小的灰色斑点,在hover在“虚拟networking没有网关”的报告上 – 我不完全确定这是否需要,但我创build了一个GateWay子网资源,无论如何,但似乎没有帮助。

[…]试图设置VNET集成,但它显示我的networking灰色的一个小灰色blob,hover在报告“虚拟networking没有网关”

你在这里正确的轨道上。

首先在您的ARM虚拟networking中创build一个网关:
Azure Portal→新build→虚拟网关

网关types: VPN

VPNtypes: 基于路由 (这实际上意味着IKEv2)

然后在其上添加一个点对点地址空间 ,以便将Web应用程序插入到VPN中。 在Azure PowerShell中:

 # Add Point-to-site address space $GatewayName = "YourGatewayName" $RG = "YourResourceGroupName" # The Point-to-site address space MUST NOT OVERLAP with the Virtual Network address space $P2SAddressSpace = "172.16.1.0/24" Set-AzureRmVirtualNetworkGatewayVpnClientConfig -VirtualNetworkGateway ` (Get-AzureRmVirtualNetworkGateway -Name $GatewayName ` -ResourceGroupName $RG) ` -VpnClientAddressPool $P2SAddressSpace -Verbose 

等待几分钟让网关更新,然后返回到Web应用程序 – >networking – > VNET集成,然后select网关。

就这样。