none
CoCreateInstanceEx 可以正常执行,就是在个别机器上执行的特别慢。 RRS feed

  • 问题

  • 由于一些原因,该应用使用了DCOM技术,但是只有单机版。也就是说客户端和服务器都是在同一个PC上执行的。

    目前该应用在上万台Windows客户端上运行,包括2K、XP、Win7、Win8,但是有个别(少于10台)Win7客户在使用该应用时出现了反映慢的问题。

    通过收集的日志可以发现是客户端调用CoCreateInstanceEx函数后卡住了,大约卡了2分半,最终返回值没有问题。

    问题出在客户端CoCreateInstanceEx调用后,服务启动前,所以怀疑是受到系统环境的影响。

    想问问什么设定或者原因可能会影响启动服务的速度?

    其他信息:

    1、调用CoCreateInstanceEx时使用的是IP地址,127.0.0.1。

    2、问题PC在无网络的状态下测试的。

    3、该应用只在PC启动时同时启动。

    4、有的说是多启动几次好像就没问题了,有的说一直有问题。下面的日志是从一直有问题的PC上收集的。

    问题PC的日志:

    07/11 14:27:39 [936-1104] Call CoCreateInstanceEx >>> 
    07/11 14:30:07 [3864-3868] FUNC -> Server _tWinMain()

    正常PC的日志:

    07/11 19:21:20 [756-924] Call CoCreateInstanceEx >>> 
    07/11 19:21:25 [1728-1732] FUNC -> Server _tWinMain()

    2014年11月7日 9:52

答案

  • 最后通过ProcessMonitor工具获取了一下系统启动时的所有日志,发现某一个应用软件的服务程序启动时占用了很长时间。通过服务管理工具将该服务设置成延迟启动,问题成功回避。
    • 已标记为答案 giftcabinet 2014年11月18日 6:21
    2014年11月18日 6:21

全部回复

  • 你好:

          请确认一下有没有一下几点这样的一些可能性原因存在:

    1.默认的网络协议不匹配。你可以在这里面改regedt32-ing the HKEY_LOCAL_MACHINE\Software\Microsoft\RPC\DCOM Protocols;

    2.有没有可能是因为多个网卡导致客户端被送回来了错误的IP地址所迷惑。

    3.安全冲突的问题。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年11月10日 6:02
  • 谢谢你的答复。

    由于联系问题机器需要花谢时间,所以在一台正常的机器上做了如下测试。

    1、默认网络协议是ncacn_ip_tcp,没有问题。清空或改为ncacn_spx或ncacn_nb_nb都没有再现问题。

    2、可以确定有一台问题机器上只有一块儿物理网卡,是否有虚拟网卡还需确认。我在VM上安装了两块网卡,一个是映射到物理网卡上,另一个是虚拟网卡。没有再现问题。

    3、安全冲突能说明的再详细些吗?准备收集一下问题机器的系统日志,还需要确认什么吗?

    2014年11月10日 7:24
  • 非常感谢版主的提示,终于从系统日志中找到了些头绪。

    每次启动DCOM时,系统就会产生一个应用错误。这个应用是一款客户端安全产品,负责监视客户端操作并留下客户端操作日志的。其中有一个功能是记录客户端启动的所有进程,可能存在冲突。

    曾经有一个问题机器应该是没有安装过该款安全软件,可能是安装了类似的其他软件产生了冲突。

    想问的是什么情况下会导致冲突呢?我的应用没有报错,只是等待了固定长的时间而已啊。

    2014年11月11日 2:11
  • 最后通过ProcessMonitor工具获取了一下系统启动时的所有日志,发现某一个应用软件的服务程序启动时占用了很长时间。通过服务管理工具将该服务设置成延迟启动,问题成功回避。
    • 已标记为答案 giftcabinet 2014年11月18日 6:21
    2014年11月18日 6:21