在模拟另一个域用户进行文件系统访问的应用程序中,从调用WindowsIdentity.Impersonate
到实际完成该用户的身份验证时,我们遇到了2秒的延迟。这只能在生产机器(Windows Server 2008)上重现,而不能在我们的开发机器(Windows 7)上重现。我们通过使用Wireshark分析网络流量来验证延迟发生之前 Kerberos身份验证 - 身份验证只需要一小部分时间,而事先发生延迟。
有哪些工具可以帮助确定此延迟的确切位置/原因?谢谢!
突破:这只发生在生产计算机上运行的64位进程中(针对x86编译的相同代码库运行时没有生产延迟)。但为什么?更多研究......
(附加信息将在相关时添加)。
答案 0 :(得分:1)
如果你还没有使用它们,你几乎肯定会受益于Windows SysInternals工具套件中的一些工具。 Process Monitor可能是一个好的开始。基本思想是跟踪Windows和您的应用程序正在做什么,看看会发生什么。
您是否已将调试程序附加到流程中?
另一件事是确定生产和开发机器之间的其他差异。是否有不同版本的库在使用?配置怎么样?如果您有生产服务器的备份,可以在那里重新创建问题吗?