问题描述
|
我编写了WCF服务,并在我的开发计算机上工作。这是一个简单的服务,它接受参数并将其放入Oracle数据库中。所有方面都经过测试,并且可以在我的32位开发机上正常工作。当我将服务编译并放置到我们的64位开发服务器(运行IIS 6)中以进行正确测试时,测试客户端会收到以下错误消息:
无法加载文件或程序集
\'Oracle.DataAccess,
版本= 2.111.7.20,文化=中性,
PublicKeyToken = 89b483f429c47342 \'或
它的依赖项之一。
客户端根本不使用Oracle.DataAccess.dll,这是服务返回的错误。在VS2010中,我已设置为该引用不需要特定版本。但是,即使设置了该设置,它也会准确地告诉我它找不到哪个版本。我尝试一次将DLL的32位和64位版本一次添加到服务的bin目录中,但都不能解决该问题。
如果我理解正确,则bin文件夹中没有任何DLL时,它应该可以工作,因为GAC已经从服务器上的其他项目中获取了正确的DLL。我该怎么做才能解决此问题?
更多细节:
如果我在bin文件夹中包含32位DLL,则会出现此错误:
无法加载文件或程序集\'Oracle.DataAccess \'或其依赖项之一。试图加载格式错误的程序。
如果在bin文件夹中包含64位DLL,则会出现此错误:
无法加载文件或程序集'Oracle.DataAccess,版本= 2.111.7.20,区域性=中性,PublicKeyToken = 89b483f429c47342'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的异常:0x80131040)
解决方法
这个问题的最高答案可能是您要寻找的:在同一解决方案/项目中使用Visual Studio定位32位和64位