我有一个基于VSTO的PowerPoint插件,可以在Office2007和Office2010上运行良好。我有用户每天都在运行这个插件,日复一日。
我现在正在使用一个使用Citrix作为桌面的新客户端。我从来没有真正理解过Citrix是如何工作的,但似乎没有人有本地安装的软件-他们只是在Citrix机器上运行所有的东西。这是一个非常封闭的环境。他们使用的是Office 2010和Vista。
无论如何,我的外接程序在这个环境中表现出奇怪的行为。简单地单击功能区上的一个按钮有时会出现错误(如果打开了“显示插件用户界面错误”设置)。错误为“调用回调ButtonClick时出错”。
其他时候,点击按钮似乎完全没有效果(尽管我怀疑它实际上开始做一些事情,然后在显示任何消息之前就放弃了)。
我很困惑,因为(a)它可以在其他地方工作,(b)我捕获并报告所有按钮单击处理程序中的异常,所以我希望看到报告的错误。
因为环境是如此的封闭,而且我的插件的新版本需要几个星期的时间才能推出,我不知道如何诊断这个问题。
有什么想法吗?
发布于 2013-03-19 11:20:10
您是否曾使用RDP远程连接到另一台Windows计算机?实际上,您可以认为Citrix是RDP的一个更高级的版本。因此,你有一堆服务器,用户在其中运行他们的应用程序和桌面,他们使用HDX而不是RDP远程连接到这些服务器。
您的客户可能正在使用XenApp或XenDesktop。在XenApp中,用户在Windows2008 R2服务器上运行他们的会话,多个用户共享一台服务器。XenDesktop类似,只是用户连接到自己的专用工作站映像,而不是连接到服务器操作系统。据猜测,你的客户可能正在使用XenDesktop,因为你说他们是在"Vista“上运行的。
在没有访问Citrix环境的情况下,诊断您的问题将非常棘手。对于我的调试,我通常会在Citrix机器上安装远程调试代理,并从我的工作站进行远程调试。有时,我会使用直接安装在Citrix机器上的Windbg或Visual Studio。如果您的客户愿意让您访问他们的环境,您可以尝试此操作。
其他选项包括:
有关将诊断跟踪添加到product.
至于到底哪里出了问题,Citrix做了一系列可能导致意外行为的钩子。特别是对于XenApp,多监视器挂钩是导致出现问题的主要原因(我不确定这是否也适用于XenDesktop )。如果你在Google上搜索"citrix disable hooks“,你会发现一系列描述如何使用注册表禁用钩子的链接。以这种方式禁用钩子对XenApp当然有效。我对XenDesktop不是很熟悉,所以我不知道同样的技术是否适用。我当然建议您尝试禁用PowerPoint的挂钩功能,看看您的问题是否会消失。
https://stackoverflow.com/questions/15344082
复制相似问题