Fusion CLOUD Solution 一台虚拟机无法注册,向DDC80端口注册,事件号1002

发布时间:  2015-03-10 浏览次数:  449 下载次数:  0
问题描述
一台虚拟机使用TC/SC方式登录不上(环境里其它虚拟机登录正常),但可以使用mstsc登录。
查看本台虚拟机的windows log,发现此台虚拟机无法注册到DDC,事件号是1002。
告警信息
查看本台虚拟机的windows log,发现此台虚拟机因为无法连接ddc,所以无法注册到DDC,事件号是1002。
相关截图:




1002事件详细描述:
The Citrix Desktop Service cannot connect to the delivery controller 'http://VDS-DB-2.mcc.sg:80/Citrix/CdsController/IRegistrar' (IP Address '191.168.92.15')

Check that the system clock is in sync between this machine and the delivery controller. If this does not resolve the problem, please refer to Citrix Knowledge Base article CTX117248 for further information.

Error Details:
Exception 'There was no endpoint listening at http://191.168.92.15/Citrix/CdsController/IRegistrar that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.' of type 'System.ServiceModel.EndpointNotFoundException'..
处理过程

1. 客户先使用了单个虚机连接不上检查三板斧,没有解决。
     三板斧如下:

  •  检查虚机/TC时间一致;
  •  检查了windows系统防火墙已经关闭;
  •  重启了Citrix Desktop service服务。


2. 查看windows系统日志,发现有1002告警,详情见详见“告警信息”描述。从1002详细描述发现有2个提示比较重要(见告警信息中的红色字体):

  •      无法连接到ddc端口80;
  •      无法监听到消息。

        下面就主要先从这2点入手检查。

3. 从虚机ping两个ddc服务器的ip和域名,都OK,说明系统的dns解析和此台虚机到ddc之间的网络没有问题。

4. 无法连接也可能是网络账号权限不够。检查NetworkService账号权限,具有full control权限,没有问题。
   方法:打开C:\Windows\ServiceProfiles目录(先开启隐藏文件/文件夹显示),在NetworkService文件夹上右键->属性:
  
5. 注意到提示说使用80端口。一般来说,没有修改过的话,虚机注册到ddc是使用8080端口,而现在提示访问80端口,所以怀疑8080端口被占用,检查后发现8080端口没有被占用。
查看端口被占用的方法,可以参考案例:
http://support.huawei.com/enterprise/KnowledgebaseReadAction.action?contentId=KB1000034686&idAbsPath=7919749|7919788|9856610|4022534

6. 另外,打开虚拟机注册表HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\VirtualDesktopAgent路径,检查 RegistrarEndpointPattern注册表项中配置的端口,确实是8080,没有问题。


“数值数据”里的内容:
<?xml version='1.0' encoding='utf-16'?><RegistrarEndpointInfo xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'><Address>http://{0}:8080/Citrix/CdsController/IRegistrar</Address><Binding>WsHttpBindingIRegistrarEndpoint</Binding><Contract>Citrix.Cds.Protocol.Controller.IRegistrar</Contract></RegistrarEndpointInfo>

7. 虚机windows日志的提示检查完毕,还没有发现问题,最后还有一个方法可以尝试:打开Citrix vda.log来进行分析。Citrix vda.log在VDA安装后默认关闭,打开有两种方法:

8. 分析抓到citrix vda.log日志,从日志可以看到,"C:\Windows\ServiceProfiles\NetworkService\AppData\Local\temp\frjwowo9.tmp"文件无法找到,检查对应路径,发现temp目录已被删除。

[ 16] 21/10/14 14:43:48.2998 : Workstation Agent:VDARegistryBasedFarm: Endpoint pattern is not valid. Defaults will be tried.
System.IO.DirectoryNotFoundException: 未能找到路径“C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\frjwowo9.tmp”的一部分。




 

根因
虚拟机C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp文件夹不存在(被删除),可能是使用垃圾清理工具,或者虚机操作系统异常导致。
解决方案
在C:\Windows\ServiceProfiles\NetworkService\AppData\Local目录下,新建Temp文件夹,并重启Citrix Desktop Service后,查看windows log虚机可以注册,使用TC/SC验证登陆成功。
注:win7系统下C:\Windows\ServiceProfiles\NetworkService\AppData目录默认隐藏,需要打开“显示隐藏文件和文件夹“的功能才能看到,相关方法略。
建议与总结
总结一:

出现本文1002事件告警时,可能原因是:
1. 虚机到ddc注册端口被占用或者修改。注:局点没有特殊需求修改过的话,注册端口默认是8080;
2. 虚机C:\Windows\ServiceProfiles\NetworkService文件夹本身及其所有文件内容,NetworkService服务账户没有完全控制权限。
3. 虚机C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp路径不存在。 

总结二:
1. 单个虚拟机登陆不上,可以先按照3板斧检查一下;
2. 3板斧不行时,检查一下虚机系统日志;
3. 系统日志也无法分析出结果,开启citrix vda.log日志进行分析。

END