我在azure云服务中部署了一个Worker Role,但我无法连接到它。 云服务具有以下定义:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="classificationCloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
<WorkerRole name="classificationWorker" vmsize="Small">
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />
<Setting name="APPINSIGHTS_INSTRUMENTATIONKEY" />
</ConfigurationSettings>
<Certificates>
</Certificates>
<Imports>
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
<Endpoints>
<InputEndpoint name="Input" protocol="tcp" port="2000" localPort="2000" />
</Endpoints>
</WorkerRole>
</ServiceDefinition>
此服务使用TcpListener侦听传入连接。
IPEndPoint ep = RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Input"].
TcpListener listener = null;
try
{
listener = new TcpListener(ep);
listener.ExclusiveAddressUse = false;
Console.WriteLine(string.Format("starting server on {0}:{1}", ep.Address.ToString(), ep.Port));
listener.Start();
}
catch(SocketException e )
{
Console.WriteLine("unable to start server", e.Message);
return;
}
此程序的日志显示的IP与云服务的公共IP不同。但这可能是因为负载平衡?
无论如何,我无法连接到部署的实例,我很难搞清楚原因。 我尝试使用云服务的公共IP和URL的主机段访问实例,但这两者都会导致连接超时。
云服务会将端口报告为rdp端口旁边的输入端点。 RDP连接正常。
感谢任何帮助。