如何使用tcp端点连接到Azure辅助角色? Tcp和Azure需要技术帮助

时间:2015-08-19 13:32:41

标签: c# azure tcp

我在visual studio中创建了一个worker角色并将其部署到Azure。 Azure显示它正在我的暂存中运行。

在我的云服务屏幕上有一个服务的URL,但是当我ping它或只是在那里导航时似乎没有做任何事情。我明白了:

此网页不可用

ERR_NAME_NOT_RESOLVED

我编写了以下代码来尝试通过TcpClient访问服务:

    string ip = "http://mysite.cloudapp.net";
    int port = 10;
    TcpClient client = new TcpClient();

    try
    {
        client.Connect(ip, port);  // This line throws the error.

        if (client.Connected)
        {
            client.Close();
        }
    }
    catch (Exception ex)
    {
        Trace.Warn(ex.Message);
    }

在client.Connect(ip,port)上有一个错误 消息=“请求的名称有效,但未找到所请求类型的数据”

我的WorkerRole具有以下Run方法(从我相信的在线教程中复制)。

public override void Run()
{
    Trace.TraceInformation("wr is running");


    TcpListener listener = null;

    try
    {
        listener = new TcpListener(
            RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["myEndpoint"].IPEndpoint);
        listener.ExclusiveAddressUse = false;
        listener.Start();
    }
    catch (SocketException)
    {
        Trace.Write("Echo server could not start.", "Error");
        return;
    }
    while (true)
    {
        IAsyncResult result = listener.BeginAcceptTcpClient(HandleAsyncConnection, listener);
        connectionWaitHandle.WaitOne();
    }
}

最后在我的csdef中,我的端点如下所示:

<InputEndpoint name="myEndpoint" protocol="tcp" port="10" localPort="10" />

我想让连接来回说话。

2 个答案:

答案 0 :(得分:0)

您是否尝试从“ip”变量的值中删除“http:”?您希望IP地址指向,但不绑定到HTTP协议。

答案 1 :(得分:0)

我以为我可以使用网址,但显然是使用我的服务页面上的azure门户网站上列出的ipaddress,在输入端点(显而易见)之下。我做了以下事情:

    IPAddress ipAddress = IPAddress.Parse("13.71.112.31");
    int port = 10;
    TcpClient client = new TcpClient();

    try
    {
        client.Connect(ipAddress, port);
            if (client.Connected) // now true
            {

我使用此tutorial作为参考。