Citrix:为什么XASession.ClientAddress为空?

时间:2015-01-15 00:28:16

标签: c# sdk citrix xenapp

using Citrix.Common.Sdk;
using Citrix.XenApp.Sdk;
using Citrix.XenApp.Commands;
using Citrix.Management.Automation;

我正在尝试将客户端地址放入一个数组中以添加到列表中。问题是ClientAddress在测试时保持返回null。我可以在线看到用户,他们的客户地址在App Center中可见。使用ServerName返回没有问题。有人知道为什么ClientAddress不起作用吗?

    private List<string[]> findUser(string strUser)
    {

        List<string[]> list = new List<string[]>();

        GetXASessionByFarm sessions = new GetXASessionByFarm(true);

        foreach (XASession session in CitrixRunspaceFactory.DefaultRunspace.ExecuteCommand(sessions))
        {
            if (session.AccountName == objWINS + "\\" + strUser)
            {
                string[] result = new string[3];
                result[0] = strUser;
                result[1] = session.ServerName; //This is working, it comes back with the server name.
                result[2] = session.ClientAddress; //This isn't working, it comes back blank.
                MessageBox.Show(result[2]);
                list.Add(result);
            }

        }
        return list;
    }

1 个答案:

答案 0 :(得分:1)

这个问题的答案是在声明GetXASessionByFarm后添加以下行:

sessions.Full = true;

例如:

private List<string[]> findUser(string strUser)
{

    List<string[]> list = new List<string[]>();

    GetXASessionByFarm sessions = new GetXASessionByFarm(true);

    sessions.Full = true;

    foreach (XASession session in CitrixRunspaceFactory.DefaultRunspace.ExecuteCommand(sessions))
    {
        if (session.AccountName == objWINS + "\\" + strUser)
        {
            string[] result = new string[3];
            result[0] = strUser;
            result[1] = session.ServerName; //This is working, it comes back with the server name.
            result[2] = session.ClientAddress; //This isn't working, it comes back blank.
            MessageBox.Show(result[2]);
            list.Add(result);
        }

    }
    return list;
}

原因是因为默认情况下该命令不会返回完整的信息量。我不得不翻译这个并根据Get-XASessions powershell命令做一些猜测。当我自己解决问题时,总觉得很好。显然,我在这个软件开发领域处于狂野西部边缘的边缘。没有人这样做。