在Windows XP 32位上为Windows Server 2003开发64位

时间:2009-09-08 15:34:00

标签: asp.net oracle .net-2.0 64-bit

我一直在Windows XP Professional上开发ASP.NET应用程序。在推广到制作时,我现在才发现服务器是64位。我在服务器上安装了Oracle Client 32位,无法连接到Oracle。

我正在使用Microsoft Provider for Oracle,我的问题是,如何在32位计算机上编译ASP.NET应用程序以连接到Windows Server 2003 64位计算机上的Oracle?

编辑:

在回答对我原始问题的评论时,我得到的错误是“尝试加载Oracle客户端库引发BadImageFormatException。在安装了32位Oracle客户端组件的64位模式下运行时会出现此问题”

我已经卸载了32位客户端并且安装了64位客户端,问题是服务器是DMZ中的生产服务器而我自己无法访问服务器,因此我试图预测任何问题我将在安装64位客户端时尝试访问服务器上的ASP.NET应用程序

2 个答案:

答案 0 :(得分:2)

尝试的另一件事是将托管应用程序的应用程序池设置为32位模式。 http://extended64.com/blogs/rhoffman/archive/2005/05/10/482.aspx

这应该允许加载32位驱动程序。

答案 1 :(得分:2)

直截了当的解决方案:您应该根据平台(x64机器上的x64)安装Oracle客户端。原因是您的.NET应用程序很可能是在AnyCPU配置中构建的,这意味着它将在x64平台上作为x64应用程序运行。然后它只能加载x64本机库...

请注意,对于Oracle,我喜欢使用Oracle Instant Client

  • 您不必在目标计算机上安装任何内容(包括开发框!)。
  • 您可以确保您的应用程序将与您选择的特定客户端一起运行(版本,x86 / x64)。
  • 您甚至可以轻松地让多个应用程序在同一台计算机上使用不同的客户端版本。
  • 作为一个缺点,它会给你的应用增加一个重要的重量(最低约19Mb)。

查看What is the minimum client footprint required to connect C# to an Oracle database?了解详情。

在您的特定情况下,我建议您设置一个可在x86和x64计算机上运行的Visual Studio项目:查看我的博客文章Oracle Instant Client in Visual Studio。然后,这是针对x86或x64计算机的how to configure a WiX package for Oracle Instant Client指南。如果您使用其他部署策略,请确保根据目标平台发送正确的客户端。