我的开发机器是Vista x64。
我正在使用WCF web服务构建与Oracle 10g数据库接口的web服务。
当开发开始时,由于在32位的Oracle.DataAccess.dll上出现System.BadImageFormatException异常,我无法使用VS2008内置的WCF测试工具[WCFTestClient],该工具会在按下F5 [Go]时启动。因此,在我的开发环境中,我切换到了ODP.NET 64位版本作为我的引用程序集,这非常好用。
我可以部署到我的本地IIS [7],但只能使用32位的Oracle.DataAccess.dll。
我正在尝试部署到一个安装了.NET 3.5 sp1和Oracle 10g数据库的Win2003 [IIS 6]上。该服务器上的其他Web应用程序成功使用Oracle连接。
如果我从web.config文件中删除所有对Oracle.DataAccess的引用,并确保我的bin/文件夹中没有Oracle.DataAccess.dll,则可以打开默认的服务元数据页面,但通过SOAP客户端调用服务会导致错误:
"Could not load file or assembly 'Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The system cannot find the file specified."
但是,如果我将Oracle.DataAccess.dll的副本放入我的bin/文件夹中,则会收到以下错误提示:
"Could not load file or assembly 'Oracle.DataAccess' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)"
在尝试在Web浏览器中加载.svc页面时。
如果我在web.config中添加一个程序集引用,我会收到配置错误:"Could not load file or assembly xxx"
我想寻求帮助理解程序集缓存,并寻求有ODP.net经验的人帮助我在这个棘手的领域中导航,以成功部署此服务。