Application Sessions Take 60 Seconds to Log Off
2010-12-04 10:12
316 查看
这几天碰到一个问题,比较头疼啊,今天终于解决了。
问题:用户使用的Citrix产品环境中,使用Iphone或者Ipad接入系统以后,打开程序,再迅速关闭程序的话,Iphone或者Ipad会出现灰屏,卡住1分钟左右,才会正常退出。也就是说,程序关闭后,用户的session会持续1分钟左右才会关闭。
研究了2天,排除了各种可能,最终算是完美解决了。
最开始还以为是苹果产品上的Receiver的Bug,结果,用PC登录测试,发现PC虽然可以关闭,但是到服务器上去看(或者可以查看本地Citrix连接中心,发现是一样的,PC关闭程序以后,类似强制关闭一样,不去等待后台会话完全注销,所以PC用户没有感觉,但是Ipad和Iphone用户需要等待会话注销才退出,1分钟太漫长了。
发现是session注销慢以后,就开始查找原因了,以为是域的问题,然后重新搭建了一套测试环境,用来排除域的问题。结果,发现,还是一样的的问题,session还是会等待一分钟才注销。然后又开始怀疑系统问题,因为以前环境不是我搭建的,操作系统不是原盘,于是放上MSDN版的2003R2,重新安装,测试,发现问题依旧。
这期间也测试过一些解决办法,打印机驱动卡会话的问题,于是把本机的所有打印机全部删除,策略里面禁用打印机,测试,问题依旧。还测试了windows profile可能导致的注销缓慢问题,清理了profile,跟踪了,也没有问题。
问题查找还在继续,已经到周五了,再不搞定,就回不了家了。硬着头皮上了一套2008R2的环境,同时又去查Citrix的KB,发现了一条比较有价值的信息。
http://support.citrix.com/article/CTX106049
发现,原来是微软的策略问题,测试,终于OK了。
原因:
windows 2003 SP1中自动启用了一个自动证书注册的配置,导致在用户登陆初始化的过程中会有两个userinit实例运行。其中有一个需要60秒的时间来自动注册证书。如果用户等待60秒,那么该过程将正常结束,用户可以快速退出。但是如果用户在60秒以内马上退出,用户需要等待userinit的一个实例60,到该实例完成以后,才可以正常退出。这就导致了iphone和ipad在打开程序,马上退出后,会等待1分钟左右才能退出的问题了,而PC机,相当于在后台处理,对用户是透明的。
解决办法:很简单,可以参考官方文章,我选用了域策略的问题。
只要对Terminal User开启以下策略即可:
把用户配置User Configuration\Security Settings\Public Key Policies\下面的 Autoenrollment Settings设置为Do not enroll certificates automatically即可,刷新策略,一切正常了。
问题:用户使用的Citrix产品环境中,使用Iphone或者Ipad接入系统以后,打开程序,再迅速关闭程序的话,Iphone或者Ipad会出现灰屏,卡住1分钟左右,才会正常退出。也就是说,程序关闭后,用户的session会持续1分钟左右才会关闭。
研究了2天,排除了各种可能,最终算是完美解决了。
最开始还以为是苹果产品上的Receiver的Bug,结果,用PC登录测试,发现PC虽然可以关闭,但是到服务器上去看(或者可以查看本地Citrix连接中心,发现是一样的,PC关闭程序以后,类似强制关闭一样,不去等待后台会话完全注销,所以PC用户没有感觉,但是Ipad和Iphone用户需要等待会话注销才退出,1分钟太漫长了。
发现是session注销慢以后,就开始查找原因了,以为是域的问题,然后重新搭建了一套测试环境,用来排除域的问题。结果,发现,还是一样的的问题,session还是会等待一分钟才注销。然后又开始怀疑系统问题,因为以前环境不是我搭建的,操作系统不是原盘,于是放上MSDN版的2003R2,重新安装,测试,发现问题依旧。
这期间也测试过一些解决办法,打印机驱动卡会话的问题,于是把本机的所有打印机全部删除,策略里面禁用打印机,测试,问题依旧。还测试了windows profile可能导致的注销缓慢问题,清理了profile,跟踪了,也没有问题。
问题查找还在继续,已经到周五了,再不搞定,就回不了家了。硬着头皮上了一套2008R2的环境,同时又去查Citrix的KB,发现了一条比较有价值的信息。
http://support.citrix.com/article/CTX106049
发现,原来是微软的策略问题,测试,终于OK了。
原因:
windows 2003 SP1中自动启用了一个自动证书注册的配置,导致在用户登陆初始化的过程中会有两个userinit实例运行。其中有一个需要60秒的时间来自动注册证书。如果用户等待60秒,那么该过程将正常结束,用户可以快速退出。但是如果用户在60秒以内马上退出,用户需要等待userinit的一个实例60,到该实例完成以后,才可以正常退出。这就导致了iphone和ipad在打开程序,马上退出后,会等待1分钟左右才能退出的问题了,而PC机,相当于在后台处理,对用户是透明的。
解决办法:很简单,可以参考官方文章,我选用了域策略的问题。
只要对Terminal User开启以下策略即可:
把用户配置User Configuration\Security Settings\Public Key Policies\下面的 Autoenrollment Settings设置为Do not enroll certificates automatically即可,刷新策略,一切正常了。
相关文章推荐
- UBUNTU : waiting-up-to-60-more-seconds-for-network-configuration
- CLR has been unable to transition from COM context for 60 seconds
- CLR has been unable to transition from COM context … for 60 seconds’ error. 此错误的解决方法
- Take Advantage of ASP.NET Built-in Features to Fend Off Web Attacks
- The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the AspNetCompatibilityRequirements attribute to the ser
- Server gl was unable to start within 60 seconds. If the server requires more time, try increasing th
- Did not receive a response to the deployment operation within the allowed timeout period [60 seconds
- 60 seconds to Spring (1)
- How to capture application log
- How to turn off the binary log for mysqld_multi instances?
- 60 seconds to Spring (2)
- 60 seconds to Spring (3)
- Log Sessions to Local Database
- Ubuntu开机 网络配置等待很久 Waiting up to 60 more seconds for network configuration
- Log4net: use Sql Server to log your application events
- What is corresponding Cron expression to fire in every X seconds, where X > 60? --转载
- Where Jboss7.1 take war application to deploy--reference
- Server at localhost was unable to start within 60 seconds
- Apache Logs: how long does it take to serve a request?(apache配置access.Log记录响应时间)http://www.ducea.com/2008/02/06/apache-logs-how-
- VS2008编译WTSEnumerateSessions,WTSLogoffSession等相关的windows API的设置