Как отладить надстройку Office, работающую в среде Citrix?

У меня есть надстройка PowerPoint на основе VSTO, которая отлично работает в Office 2007 и Office 2010. Пользователи запускают эту надстройку каждый день, изо дня в день.

Сейчас я работаю с новым клиентом, который использует Citrix для своих рабочих столов. Я никогда не понимал, как именно работает Citrix, но, похоже, ни у кого нет локально установленного программного обеспечения — они просто запускают все из коробки Citrix. Это очень закрытая среда. Они используют Office 2010 и что-то похожее на Vista.

Во всяком случае, моя надстройка ведет себя странно в этой среде. Простое нажатие одной из моих кнопок на ленте иногда приводит к ошибке (если параметр «Показать ошибки пользовательского интерфейса надстройки» включен). Ошибка гласит: «Произошла ошибка при вызове обратного вызова «ButtonClick».

В других случаях нажатие кнопки, по-видимому, вообще не дает никакого эффекта (хотя я подозреваю, что оно на самом деле начинает что-то делать, а затем отключается, прежде чем отображать какие-либо сообщения).

Я в замешательстве, потому что (а) он работает в другом месте и (б) я перехватываю и сообщаю об исключениях во всех своих обработчиках нажатия кнопок, поэтому я ожидаю увидеть сообщение об ошибке.

Поскольку среда настолько заблокирована, и развертывание новой версии моей надстройки занимает буквально недели, я не знаю, как это диагностировать.

Есть идеи?


person Gary McGill    schedule 11.03.2013    source источник


Ответы (1)


Вы когда-нибудь использовали RDP для удаленного доступа к другому компьютеру с Windows? Во всех смыслах вы можете считать Citrix гораздо более красивой версией RDP. Итак, у вас есть куча серверов, на которых пользователи запускают свои приложения и рабочие столы и подключаются к ним удаленно, используя HDX вместо RDP.

Ваш клиент может использовать XenApp или XenDesktop. В XenApp пользователи запускают свои сеансы на серверах Windows 2008 R2, при этом каждый сервер используется несколькими пользователями. XenDesktop аналогичен за исключением того, что вместо подключения к серверной ОС пользователь подключается к своему собственному выделенному образу рабочей станции. Полагаю, ваш клиент, вероятно, использует XenDesktop, поскольку вы говорите, что он работает на «Vista».

Диагностика вашей проблемы будет сложной без доступа к среде Citrix. Для отладки я обычно устанавливаю агент удаленной отладки на машину Citrix и выполняю удаленную отладку со своей рабочей станции. Иногда я буду использовать Windbg или Visual Studio, установленные непосредственно на машине Citrix. Если ваш клиент готов предоставить вам доступ к своей среде, вы можете попробовать это.

Другие варианты включают в себя:

  • Добавьте диагностическую трассировку к вашему продукту.
  • Citrix предоставляет некоторые услуги по тестированию совместимости, см.: http://citrix.com/partner-programs/citrix-ready/test.html

Что касается того, что на самом деле может пойти не так, Citrix применяет ряд перехватов, которые могут привести к неожиданному поведению. В частности, для XenApp подключение нескольких мониторов является основной причиной сбоев (я не уверен, что это относится и к XenDesktop). Если вы выполните поиск в Google по запросу «citrix отключить хуки», вы найдете ряд ссылок, описывающих, как отключить хуки с помощью реестра. Отключение перехватчиков таким образом, безусловно, работает для XenApp. Я не так хорошо знаком с XenDesktop, поэтому не знаю, применимы ли те же методы. Я определенно рекомендую попробовать отключить перехват для PowerPoint, чтобы увидеть, исчезнут ли ваши проблемы.

person donovan    schedule 19.03.2013
comment
Спасибо за эту информацию. К сожалению, я не думаю, что смогу что-либо установить или модифицировать систему, так что да, диагностика будет сложной. Но вы дали мне с чего начать, так что большое вам спасибо за это. - person Gary McGill; 19.03.2013