将Azure Web Apps与Azure云服务配合使用
如果您希望从Azure Web应用程序,而不是从同一个云服务中承载的Web角色,连接到Azure云服务silo,您可以这样做。
为了安全地工作,您需要将Azure Web App和托管Silo的工作者角色,分配给一个Azure虚拟网络。
首先,我们将设置Azure Web App,您可以按照本指南,创建虚拟网络,并将其分配给Azure Web App。
现在,我们可以通过修改ServiceConfiguration
文件,将云服务分配给虚拟网络。
<NetworkConfiguration>
<VirtualNetworkSite name="virtual-network-name" />
<AddressAssignments>
<InstanceAddress roleName="role-name">
<Subnets>
<Subnet name="subnet-name" />
</Subnets>
</InstanceAddress>
</AddressAssignments>
</NetworkConfiguration>
还要确保配置Silo端点。
<Endpoints>
<InternalEndpoint name="OrleansSiloEndpoint" protocol="tcp" port="11111" />
<InternalEndpoint name="OrleansProxyEndpoint" protocol="tcp" port="30000" />
</Endpoints>
您现在可以从Web App连接到集群的其余部分。
潜在问题
如果Web App无法连接到Silo:
- 确保Azure Cloud Service 中至少有两个角色或者一个角色的两个实例,否则可能无法生成
InternalEndpoint
防火墙的规则。 - 检查Web App和Silo是否使用相同的
ClusterId
和ServiceId
。 - 确保将网络安全组设置为允许内部虚拟网络连接。如果您还没有,可以使用以下
PowerShell
内容,轻松创建和分配一个:
New-AzureNetworkSecurityGroup -Name "Default" -Location "North Europe"
Get-AzureNetworkSecurityGroup -Name "Default" | Set-AzureNetworkSecurityGroupToSubnet -VirtualNetworkName "virtual-network-name" -SubnetName "subnet-name"