有谁知道Citrix和Delphi 2007应用程序之间的问题?(也许还有其他开发语言?)

Wim*_*ink 1 delphi citrix delphi-2007

情况很简单.我创建了一个复杂的Delphi应用程序,它使用了几种不同的技术.主要应用程序是WIN32模块,但是一些部件是作为.NET程序集开发的.它还与Web服务通信或从特定网站检索数据.它将大部分用户数据保存在MS Access数据库中,并在注册表中包含一些其他设置.在内存中,所有数据都在XML文档中转换,有时在系统崩溃时将其作为备份保存到磁盘.(从而允许用户恢复他的数据.)XML文件中还有一些数据用于只读目的.该应用程序还执行其他应用程序,并希望完成.总而言之,这是一个非常复杂的应用程序.

尽管少数用户确实在Citrix服务器上使用此应用程序,但我们不支持使用此应用程序的Citrix.(基本上,它允许这些用户更具移动性.)但即使我们不断告诉他们我们不支持Citrix,这些客户也会试图帮助他们解决他们往往会遇到的一些偶然问题.

主要问题似乎是偶尔出现在Citrix系统上的随机异常.从不在同一个位置,通常它看起来与一些记忆问题有关.我们已经发布了很多错误报告,并且存在太多不同的错误.所以我知道解决所有那些复杂的问题.

所以我想更加通用,只想了解Delphi(2007)在Citrix系统上运行时可能遇到的问题.特别是当此应用程序不是以任何方式设计为Citrix感知时.我们不想正式支持Citrix,但如果我们可以帮助这些客户会很好.并不是说他们会付给我们更多,但仍然......

那么有谁知道Delphi应用程序可以在Citrix系统上遇到的一些常见问题?有没有人知道Citrix的常见问题?是否存在一些针对Citrix问题的Silver Bullet或Golden Hammer解决方案?

顺便说一句.我对Citrix的了解仅限于这个维基百科条目和这个网站 ......还有一点我用Google搜索了 ...

Rem*_*mko 7

过去有一些问题,Citrix上发布的Delphi应用程序在任务栏中没有图标.我认为这是由MainFormOnTaskbar解决的(在D2007及更高版本中可用).除此之外,终端服务器和Citrix之间没有太大区别(从应用程序的角度来看),您需要考虑的最重要的事情是:

  • 用户永远不是终端或Citrix服务器的管理员,因此他们在注册表的本地计算机部分,C驱动器,程序文件夹等中没有权限.
  • 同一系统上的多个用户必须可以同时启动您的应用程序.
  • 某些文件夹(如Windows文件夹)被重定向以防止可能的应用程序问题,这也意味着像GetWindowsFolder这样的API不会返回真正的Windows文件夹,而是返回重定向的文件夹.请注意,可以通过在PE头中设置特定标志来禁用此行为(请参阅delphi-and-terminal-server-aware).
  • 有时在服务器场中使用多个服务器,这意味着您的应用程序可以在任何这些服务器上运行,用户在登录时被重定向到最不忙的服务器(负载平衡).因此,不要使用任何本地数据库来存储东西.
  • 如果使用外部数据库或中间件或应用程序服务器,请注意多个用户将使用相同的计算机名和IP地址连接(某些Citrix版本可以使用虚拟IP地址来解决此问题).