我们有一个 ASP.net Web 应用程序在以下环境中运行 -
现有环境
操作系统:Windows 2003
框架:.NET框架:2.0
IIS:6.0
数据库:Oracle 10g
我们希望将其升级到以下环境
目前环境
操作系统:Windows 2008 R2 x64
框架:.NET框架:2.0
IIS:7.0
数据库:Oracle 11g
这样做时,我们面临以下问题
Windows Server 2008 R2 64 位上的 ODBC 连接问题
无法从 Windows Server 2008 R2 中的 ASP.net Web 应用程序建立 ODBC 连接。
应用程序抛出错误:错误 [IM002] [Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序。
连接字符串:
<add name="ConnectionString" connectionString="Driver=Oracle in XE;Dsn=winerenew;uid=winere;pwd=winere;dbq=XE;dba=W;apa=T;exc=F;fen=T;qto=T;frc=10;fdl=10;lob=T;rst=T;btd=F;bam=IfAllSuccessful;num=NLS;dpm=F;mts=T;mdi=F;csr=F;fwc=F;fbs=64000;tlo=O" providerName="System.Data.Odbc"/>
应用程序在 Windows 2008 x86 中完美运行。
我们尝试了以下方法来解决 Windows Server 2008 x64 中的此问题,
1) 启用应用程序池中的 32 位应用程序 (IIS 7)
2) 使用以下命令执行 ODBC 32 位驱动程序 C:\Windows\SysWOW64\odbcad32.exe
3) 安装oracle 64位ODBC驱动程序。
上述方法似乎并不能解决这个问题。谁能告诉我背后的问题以及解决这个问题的解决方案吗?
设置默认 ODBC 驱动程序。 从 Windows 开始菜单中,单击控制面板 > 管理工具 > 数据源 (ODBC)。 打开系统 DSN 选项卡。 选择 ODBC_NAME 并单击配置。
一般系统默认使用32位ODBC。但如果你没有 32 位,请配置 64 位并设置为默认值。
对我来说它有效。 我在 64 位中构建 VS 应用程序,并通过设置默认 ODBC 驱动程序在 IIS 上发布。
如果您有有效的 DNS,那么您可以从
odbcad32.exe
启用跟踪 ODBC 调用。然后从任何 ODBC 编辑器/工具测试 Oracle 连接(我经常使用使用 odbc
模块的简单 Python 程序进行测试)。此类跟踪将创建成功尝试连接数据库的文件。连接后执行数据库关闭程序,停止跟踪并重命名跟踪文件。
现在您必须为您的应用程序创建这样的跟踪:启用跟踪,启动程序,尝试连接数据库,关闭程序,停止跟踪。您有两个文件尝试通过 ODBC 连接到数据库:一个成功,一个失败。比较一下。