我已经将我的服务从vs2010构建并安装到64位机器上。
当我的服务引用32位dll(准确地说是spssio32.dll)时出现问题 - 我在事件查看器中收到错误:“System.BadImageFormatException:尝试加载带有格式不正确。(HRESULT异常:0x8007000B)“
对此事的任何帮助都将不胜感激。
此致 Byron Cobb。
答案 0 :(得分:3)
您的服务代码是用.NET语言编写的吗?如果是,则需要将其标记为定位x86
而不是Any CPU
(通过项目属性/构建/平台目标)。
(默认情况下,.NET代码的目标是Any CPU
,这意味着在64位计算机上它会编译成x64机器代码。因为这样的64位代码无法加载32位DLL,这可能导致对于你所看到的故障。如果代码依赖于32位DLL,它甚至需要在64位机器上编译为32位机器代码,因此将目标平台设置为{{1} }。)
答案 1 :(得分:1)
您可以使用COM代理
http://www.dnjonline.com/article.aspx?id=jun07_access3264
另一种变体是产生一个外部32位服务器进程,并为它和64位应用程序添加一个.NET远程处理接口,因此您可以使用.NET远程处理进行进程间通信。