本地计算机和IIS列出rdp会话

时间:2016-03-11 11:14:38

标签: c# asp.net iis

我使用Active RDP会话视图创建ASP.NET应用程序。

此代码在我的本地计算机上的Visual Studio中执行时成功返回会话但是当我在IIS上部署它时返回的List是空的并且没有抛出任何异常。

C#Console Application中的相同代码工作正常。

有什么建议吗?

public static List<TerminalSessionData> ListSessions(string ServerName)
{
    IntPtr server = IntPtr.Zero;
    List<TerminalSessionData> ret = new List<TerminalSessionData>();
    server = OpenServer(ServerName);

    try
    {
        IntPtr ppSessionInfo = IntPtr.Zero;

        Int32 count = 0;
        Int32 retval = WTSEnumerateSessions(server, 0, 1, ref ppSessionInfo, ref count);
        Int32 dataSize = Marshal.SizeOf(typeof(WTS_SESSION_INFO));

        Int64 current = (int)ppSessionInfo;

        if (retval != 0)
        {
            for (int i = 0; i < count; i++)
            {
                WTS_SESSION_INFO si = (WTS_SESSION_INFO)Marshal.PtrToStructure((System.IntPtr)current, typeof(WTS_SESSION_INFO));
                current += dataSize;

                ret.Add(new TerminalSessionData(si.SessionID, si.State, si.pWinStationName));
            }

            WTSFreeMemory(ppSessionInfo);
        }
    }catch(Exception ex)
    {
        throw ex;
    }
    finally
    {
        CloseServer(server);
    }

    return ret;
}

1 个答案:

答案 0 :(得分:0)

enter image description here

我必须打开Personification并输入Administrator的登录/传递