2

我在更新到 64 位 Windows 7 然后运行现有的 .NET 网站后收到此错误。

[InvalidOperationException:尝试加载 Oracle 客户端库时抛出 BadImageFormatException。在安装了 32 位 Oracle 客户端组件的 64 位模式下运行时会出现此问题。]

我只安装了 32 位 Oracle 客户端,并且我知道在我的 64 位开发机器上,除非明确说明,否则应用程序需要 64 位库。这是我到目前为止所做的搜索。

我已经读到我可以将解决方案平台更改为 x86,这将指示应用程序使用 32 位(如果它找到的话)。我想这样做,但 Visual Studio 解决方案中的网站没有 x86 选项。

我创建了一个测试应用程序,我可以选择,我创建了一个测试网站,但它没有。如何将网站编译为 x86,以便使用 32 位 Oracle 客户端。

干杯

4

1 回答 1

6

在 IIS 管理器中,创建一个应用程序池并将该应用程序池设置为在 32 位模式下运行。然后使用 32 位 Oracle 客户端分配您的网站以在该 32 位应用程序池中运行。

因为 IIS 为该应用程序池启动的工作进程是 32 位进程,所以当它尝试加载 CLR 时,它将加载 32 位 CLR,因此将以 32 位模式加载程序集。即使您的程序集是针对 64 位和 32 位模式编译的,也是如此。然后,您在 32 位模式下运行的程序集可以调用在 32 位模式下运行的 Oracle 客户端。

于 2009-11-10T10:56:26.320 回答