2009-09-08 163 views
0

我一直在Windows XP Professional上开发ASP.NET应用程序。在促进生产的同时,我才发现服务器是64位的。我在服务器上安装了Oracle Client 32位,无法连接到Oracle。在Windows XP 32位上为Windows Server 2003 64位开发

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

编辑:

在回答关于我原来的问题评论,我得到的错误是“尝试加载Oracle客户端库扔BadImageFormatException在64位模式与32位运行时,会出现此问题安装Oracle客户端组件“

我卸载了32位客户端,并且正在安装64位客户端,问题在于服务器是DMZ中的生产服务器,我自己也无法访问服务器,所以我我试图预测安装64位客户端时遇到的任何问题,并尝试访问服务器上的ASP.NET应用程序

+0

是否有Oracle连接的64位驱动程序? – 2009-09-08 15:36:21

+0

“无法连接到Oracle”是什么意思?您收到错误讯息?它超时了?什么?您是否尝试使用SQLPlus或Oracle客户端提供的其他工具进行连接? – 2009-09-08 15:57:30

回答

2

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

需要注意的是,当涉及到甲骨文,我喜欢用Oracle Instant Client

  • 您没有安装在目标计算机上任何东西(包括开发盒子!)。
  • 您可以确保您的应用程序将与您选择的特定客户端(版本,x86/x64)一起运行。
  • 您甚至可以在同一台计算机上轻松地使用不同客户端版本的多个应用程序。
  • 作为一个缺点,它增加了一个重要的权重(至少约19Mb)你的应用程序。

检查What is the minimum client footprint required to connect C# to an Oracle database?了解更多信息。

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

相关问题