【发布时间】:2013-06-13 13:23:46
【问题描述】:
我有一个使用“AnyCPU”标志编译的 .net 应用程序。此应用程序使用 MySQL 进行持久存储。
我遇到了一个奇怪的问题,即当我在 32 位机器上运行我的应用程序并将其连接到在另一台机器上运行的 64 位版本的 MySQL 时,我的查询最终处于“等待表元数据锁定”状态。
我已经测试过,当我的应用程序和 MySQL 在同一平台上运行时,它可以正常工作,即在 32 位或 64 位上运行。
这是我的理论,可能完全错误:)
由于我的应用程序是作为 32 位应用程序加载的,因此 .net 连接器程序集(我认为它是使用“anycpu”编译的)也将作为 32 位加载。我的猜测是,当 32 位 .net 连接器与 64 位 MySQL 通信时会出现问题。
我的理论正确吗?
a) 如果不是,请告诉我,找出问题所在的最简单方法是什么?
b) 如果是,我能做些什么。原因是我不能强制 .net 框架为我的 32 位应用程序以 64 位模式加载 mysql 的 .net 连接器程序集。即使这是可能的(在同一进程中),在加载连接器之前,我到底要如何知道我的应用程序将连接到哪种类型的 MySQL ......?
附:我的直觉是,根据谷歌的说法,这个理论不太可能是正确的,以前没有人遇到过这个问题。
【问题讨论】:
标签: mysql .net 32bit-64bit mysql-connector