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

有人知道Citrix和Delphi 2007应用程序之间的问题吗?(也许还有其他开发语言?),delphi,delphi-2007,citrix,Delphi,Delphi 2007,Citrix,情况很简单。我创建了一个复杂的Delphi应用程序,它使用了几种不同的技术。主应用程序是一个WIN32模块,但有几个部分是作为.NET程序集开发的。它还与web服务通信或从特定网站检索数据。它将大部分用户数据保存在MS Access数据库中,并在注册表中进行一些附加设置。在内存中,所有数据都在一个XML文档中转换,该文档偶尔会作为备份保存到磁盘,以防系统崩溃。(因此允许用户恢复数据。)XML文件中还有一些数据是只读的。该应用程序还执行其他应用程序,并希望这些应用程序能够完成。总之,这是一个相当复

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

我们不支持使用此应用程序的Citrix,尽管有少数用户在Citrix服务器上使用此应用程序。(基本上,它允许这些用户更具移动性。)但即使我们一直告诉他们我们不支持Citrix,这些客户还是试图推动我们帮助他们解决一些他们可能遇到的偶尔问题

主要问题似乎是Citrix系统上偶尔出现的随机异常。从不在同一个位置,而且经常与某些内存问题有关。我们已经有了大量的错误报告,而且有太多不同的错误。所以我知道解决所有这些问题会很复杂

所以我想说得更一般一点,只是想知道Delphi(2007)可能存在的问题当它在Citrix系统上运行时可以有。特别是当这个应用程序没有设计成以任何方式支持Citrix时。我们不想正式支持Citrix,但如果我们能够帮助这些客户,那就太好了。这并不是说他们会给我们更多的钱,但仍然

那么,有人知道Delphi应用程序在Citrix系统上可能存在的一些常见问题吗? 有人知道Citrix的常见问题吗? 是否有一些解决Citrix问题的银弹或金锤解决方案


顺便说一句,我对Citrix的了解仅限于入门级和…我有一点…

一般来说,为了使用XenApp,您的应用程序需要与MS终端服务兼容。我的理解是.NET应用程序与终端服务兼容,因此扩展后也应该在Citrix环境中工作。Obvi然而,当你遇到一些问题时,事情并不是那么简单


有一个测试和验证工具包,您可能会觉得很有用。我想测试工具包和虚拟实验室工具对您最有用。该工具包可以免费使用,但需要注册。

一般来说,您的应用程序需要与MS终端服务兼容才能与XenApp配合使用。我的理解ng是指.NET应用程序与终端服务兼容,因此扩展后也应该可以在Citrix环境中工作。显然,当您遇到一些问题时,这并不是那么简单


有一个测试和验证工具包,您可能会发现它很有用。我想测试工具包和虚拟实验室工具对您最有用。该工具包是免费的,但需要注册。

我们的许多客户在Citrix上使用我们的Delphi应用程序。一般来说,它工作正常。我们的旧版本存在打印问题Delphi的两个版本,但这在更新版本的Delphi中得到了修复(当然比Delphi 2007更新)。但是,由于您现在运行的是终端服务,因此无论是否使用Citrix,某些事情都无法正常工作。例如,您无法与旧版本的InterBase建立本地连接,因为旧版本的InterBase使用的是命名管道,而不使用全局修饰符。使用双缓冲也是一个非常糟糕的主意。等等。我的建议是o寻找有关Win32应用程序和终端服务的建议,而不是特别寻找有关Delphi和Citrix的建议。我知道Citrix的一个特别问题是,你不能指望有一个C驱动器可用。希望你没有在代码中硬编码任何驱动器号,但如果你有,你会遇到麻烦ble。

我们的许多客户在Citrix上使用我们的Delphi应用程序。一般来说,它工作正常。我们在较旧版本的Delphi上存在打印问题,但这在较新版本的Delphi中得到了修复(当然比Delphi 2007更新)。但是,由于您现在运行的是终端服务,因此无论是否使用Citrix,某些事情都无法正常工作。例如,您无法与旧版本的InterBase建立本地连接,因为旧版本的InterBase使用的是命名管道,而不使用全局修饰符。使用双缓冲也是一个非常糟糕的主意。等等。我的建议是o寻找有关Win32应用程序和终端服务的建议,而不是特别寻找有关Delphi和Citrix的建议。我知道Citrix的一个特别问题是,你不能指望有一个C驱动器可用。希望你没有在代码中硬编码任何驱动器号,但如果你有,你会遇到麻烦ble。

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

  • 用户从来不是终端或Citrix服务器上的管理员,因此他们对注册表的本地计算机部分、C驱动器、程序文件夹等没有权限
  • 同一系统上的多个用户必须能够同时启动应用程序
  • 某些文件夹(如Windows文件夹)无法重拨