我正在开发一个ASP.NET应用程序,并试图在我的64位win 7机器上使用64位驱动程序版本的ODBC,因为部署服务器具有Windows Server 2008,它是自然在64位,因为微软决定不做一个32位版本afaik。Win 7和ODBC的64位
的第一个问题是一个System.Data.Odbc.OdbcException
“ERROR [IM014] [微软] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的结构不匹配”。尽管我正在开发一个64位操作系统,但编译器似乎决定编译32位。经过一些研究后,我将每个(自己的)程序集中的目标平台更改为x64。我使用的是NHibernate和Spring.Net,但是我读了一些对于NHibernate来说64位没有问题的地方。我没有检查Spring.Net。汇编开始了。
我收到了一些警告,说每个.net程序集都是为另一个平台而构建的,但我再次在某处读到我可以忽略这些警告,并且应用程序应该运行得很好,因为运行时(或编译器?)会计算出正确的组装。
因此,我立即测试了应用程序,并获得System.BadImageFormatException
(错误格式)的奖励。这又是一个关于32/64位问题的例外,虽然我的每个程序集都被编译为64位。
我慢慢开始讨厌64位。认真。在具有64位驱动程序的64位服务器的64位操作系统上构建64位应用程序很困难吗?
有没有人有解决方案或有这方面的经验?我发现了许多使用32位的解决方法,但这不是一个选项。它必须是一个64位解决方案。
不过我会继续努力解决这个问题。我会在这里写下任何进展。
更新: Spring.Net似乎因为组件“在运行时动态编译为本地机器架构”是在64位就好了。
不幸的是它是关于组件之间的兼容性(应用程序<-> 64位odbc驱动程序)而不是64位的东西。但我读了32位模式,但我宁愿想想那是我的最后一招。 – Robert 2011-02-01 19:55:25