C# WTSQueryUserToken失败,getlasterror()返回1723

C# WTSQueryUserToken失败,getlasterror()返回1723,c#,.net,winapi,pinvoke,rpc,C#,.net,Winapi,Pinvoke,Rpc,我有一个windows服务正在系统帐户的凭据下运行。该服务定期轮询windows以获取活动控制台会话id,即交互式登录windows用户,然后通过pinvoking wtsapi32.dll函数WTSQueryUserToken(…)检索与活动控制台会话id关联的用户令牌。该实现在现场99.9%的时间都能完美地工作。但是,最近我发现一个客户,该实现定期(但从不一致)检索活动控制台会话id的用户令牌失败 请参阅本文底部的客户操作系统信息 当WTSQueryUserToken()失败时,GetLas

我有一个windows服务正在系统帐户的凭据下运行。该服务定期轮询windows以获取活动控制台会话id,即交互式登录windows用户,然后通过pinvoking wtsapi32.dll函数WTSQueryUserToken(…)检索与活动控制台会话id关联的用户令牌。该实现在现场99.9%的时间都能完美地工作。但是,最近我发现一个客户,该实现定期(但从不一致)检索活动控制台会话id的用户令牌失败

请参阅本文底部的客户操作系统信息

当WTSQueryUserToken()失败时,GetLastError()返回Windows系统错误代码1723

错误代码1723的说明:“RPC服务器太忙,无法完成此操作”

下面是演示实现的示例代码段:

int ActiveSession = 0;
Win32Wrapper.GetActiveConsoleSessionId(ref ActiveSession);
IntPtr UserToken = IntPtr.Zero;

if(!Win32Wrapper.WTSQueryUserToken(ActiveSession, ref UserToken))
{
   int myErr = Convert.ToInt32(Win32Wrapper.GetLastError());
   log("Failed to retrieve UserToken." + myErr.ToString());
   return;
}
else
{
   log("Retrieved User Token");
}
有人知道罪魁祸首是什么吗

以下是客户的设置:

  • 身份验证:Active Directory
  • 操作系统:
  • Microsoft Windows NT 5.1.2600服务
  • 包3当前UI文化:en US
  • 当前文化:en US CLR
  • 版本:2.0.50727.3603
  • IE版本:8.0.6001.18702
  • 系统类型:32位自由
  • 物理内存:总计411MB
  • 物理内存:893MB系统
  • 制造商:戴尔公司
  • 型号:Vostro 1000
  • 处理器1:AMD Athlon(tm)64 X2双核处理器TK-57
服务:

姓名:警员 启动模式:禁用 状态:停止 名称:应用层网关服务 启动模式:手动 状态:正在运行 名称:苹果移动设备 启动模式:自动 状态:正在运行 名称:应用程序管理 启动模式:手动 状态:停止 名称:ASP.NET状态服务 启动模式:手动 状态:停止 名称:Ati热键轮询器 启动模式:自动 状态:正在运行 名称:Windows音频 启动模式:自动 状态:正在运行 名称:后台智能传输服务 启动模式:自动 状态:正在运行 姓名:你好 启动模式:自动 状态:正在运行 名称:电脑浏览器 启动模式:自动 状态:正在运行 名称:索引服务 启动模式:手动 状态:停止 名称:剪贴簿 启动模式:禁用 状态:停止 名称:.NET运行时优化服务v2.0.50727_X86 启动模式:手动 状态:停止 名称:COM+系统应用程序 启动模式:手动 状态:停止 名称:加密服务 启动模式:自动 状态:正在运行 名称:DCOM服务器进程启动器 启动模式:自动 状态:正在运行 名称:DHCP客户端 启动模式:自动 状态:正在运行 名称:逻辑磁盘管理器管理服务 启动模式:手动 状态:停止 名称:逻辑磁盘管理器 启动模式:自动 状态:正在运行 名称:DNS客户端 启动模式:自动 状态:正在运行 名称:有线自动配置 启动模式:手动 状态:停止 名称:可扩展身份验证协议服务 启动模式:手动 状态:停止 名称:错误报告服务 启动模式:禁用 状态:停止 名称:事件日志 启动模式:自动 状态:正在运行 名称:COM+事件系统 启动模式:手动 状态:正在运行 名称:快速用户切换兼容性 启动模式:手动 状态:停止 名称:FlipShare服务 启动模式:自动 状态:正在运行 名称:Windows演示文稿基础字体缓存3.0.0.0 启动模式:手动 状态:停止 名称:帮助和支持 启动模式:自动 状态:正在运行 名称:HID输入服务 启动模式:自动 状态:正在运行 名称:健康密钥和证书管理服务 启动模式:手动 状态:停止 名称:HTTP SSL 启动模式:手动 状态:停止 名称:InstallDriver表管理器 启动模式:手动 状态:停止 名称:Windows CardSpace 启动模式:手动 状态:停止 名称:IMAPI CD刻录COM服务 启动模式:禁用 状态:停止 名称:iPod服务 启动模式:手动 状态:停止 名称:Java快速入门 启动模式:禁用 状态:停止 名称:服务器 启动模式:自动 状态:正在运行 名称:工作站 启动模式:自动 状态:正在运行 名称:TCP/IP NetBIOS帮助程序 启动模式:自动 状态:正在运行 名称:McAfee框架服务 启动模式:自动 状态:正在运行 姓名:McAfee McShield 启动模式:自动 状态:正在运行 姓名:McAfee任务管理器 启动模式:自动 状态:正在运行 名称:机器调试管理器 启动模式:自动 状态:正在运行 姓名:信使 启动模式:禁用 状态:停止 姓名:视觉控制经理 启动模式:禁用 状态:停止 名称:NetMeeting远程桌面共享 启动模式:禁用 状态:停止 名称:分布式事务协调器 启动模式:手动 状态:停止 名称:Windows安装程序 启动模式:手动 状态:停止 名称:网络访问保护代理 启动模式:手动 状态:停止 名称:网络DDE 启动模式:禁用 状态:停止 名称:网络DDE DSDM 启动模式: