我正在尝试在Citrix环境中部署WinForms应用程序。它在其他物理和虚拟机器上一直可靠地工作了一段时间,但只有在Citrix桌面上运行应用程序时才会失败。Cint(“1”)为什么会失败?
失败通常是我们在(SQL Server 2005)数据库中的通用设置表中将混合类型的数据作为字符串来处理,然后在运行时将它们转换为适当的类型。
因此,例如,有一个在一个varchar在数据库上“1”(50)柱,它的读取,然后像
dim myNumericVariable as integer = Cint(dr.Item(columnName))
(其中博士是DataRow中走出ADO的。净)。
中抛出的异常的消息称:
Conversion from string "1" to type 'integer' is not valid
这种故障是发生在整个应用程序,但只在Citrix环境。在我们所有的其他环境中,它运行良好,但我不知道Citrix是否只是一种侥幸,还有其他一些潜在的原因。
这是一个VB.NET应用程序,.NET 2.0,Strict和Explicit都是在x86上编译的。它可以在XP SP3上运行,也可以在Windows 2003 Server x64上运行。
我在我的智慧结束这一点 - 我看了所有,并没有发现为什么我看到这种行为的暗示。我会非常感谢您的建议。如果您需要更多关于环境的信息或应用程序的构建方式,我会很乐意编辑这个问题。在此先感谢..
非常感谢...我收到的消息肯定与您在此给出的KB链接相同。这是一个很有前途的领先,但遗憾的是我没有访问相关服务器上的注册表,所以我不得不等待,直到周一才能确定! – ChrisA 2009-01-24 14:23:24