gpt4 book ai didi

.net - 部署使用 Oracle.DataAccess 的 Web 服务器会导致各种程序集错误

转载 作者:行者123 更新时间:2023-12-01 06:18:24 24 4
gpt4 key购买 nike

我的开发机器是 Vista x64。

我正在使用 WCF Web 服务来构建连接到 oracle 10g 数据库的 Web 服务。

开发开始时,我无法在 32 位 Oracle.DataAccess.dll 上使用 VS2008 的内置 WCF 测试工具 [WCFTestClient],该工具在您按 F5 [Go] 时启动,因为我在 Oracle 对象上得到 System.BadImageFormatException。因此,在我的开发环境中,我为引用的程序集切换到 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,我可以调出默认服务元数据页面 [s],但调用该服务通过 SOAP 客户端导致错误:

“无法加载文件或程序集 'Oracle.DataAccess, Version=10.2.0.100, Culture=neutral, PublicKeyToken=89b483f429c47342' 或其依赖项之一。系统找不到指定的文件。”

但是,如果我将 Oracle.DataAccess.dll 的副本放在 bin/文件夹中,则会得到:

“无法加载文件或程序集‘Oracle.DataAccess’或其依赖项之一。定位的程序集的 list 定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)”

尝试在 Web 浏览器中加载 .svc 页面时。

如果我向 web.config 添加程序集引用,则会收到配置错误:“无法加载文件或程序集 xxx”

我想我正在寻找帮助理解程序集缓存,以及有 ODP.net 经验的人可以帮助我在这个危险的领域中导航并成功部署此服务。

最佳答案

最近遇到了类似的问题,发现 System.BadImageFormatException 是由于从指定目标平台为 Any/x64 的项目中引用了 32 位版本的 Oracle.DataAccess 引起的。将项目设置为面向 x86 并配置 IIS 7 以启用 32 位应用程序(右键单击应用程序池 -> 高级设置...将“启用 32 位应用程序”设置为 true)一切似乎都按预期工作.另外,here是一篇文章的链接,该文章解释了如何让 32 位和 64 位版本在不同的工作进程和另一个 here 上运行。解释如何使用 IIS 6 让 32 位应用程序在 64 位上运行。

关于.net - 部署使用 Oracle.DataAccess 的 Web 服务器会导致各种程序集错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com