我最近通过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网关。
就这样。