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

本文关键字:Azure Tcp 需要 帮助 技术 Worker tcp 何使用 端点 连接 角色 | 更新日期: 2023-09-27 18:08:48

我在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);
    }

在客户端。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" />

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

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

我认为我可以使用url,但显然使用我的服务页面上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
            {