Zes*_*sty 6 .net c# asp.net iis odp.net
我必须得到一个使用unmanaged ODP.NET在64-bit机器上工作的遗留应用程序.
64-bit unmanaged ODP.NET64-bit unmanaged ODP.NET在控制台应用程序中测试它来验证它是否正常工作Oracle.Data.AccessDLL 的引用GAC.Web应用程序无法连接到数据库.代码片段不相关,因为代码有效并且非常简单(参见第2点).它失败了 conn.Open();
Exception.Message 是空的.
Exception.StackTrace 没用:
at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,
OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object
src, String procedure, Boolean bCheck, Int32 isRecoverable) at
Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,
OracleConnection conn, IntPtr opsErrCtx, Object src) at
Oracle.DataAccess.Client.OracleConnection.Open() at
TestODPNet.ODPNetTester.Test() in
D:\Projects\TestODPNet\TestODPNet\ODPNetTester.cs:line 27
Run Code Online (Sandbox Code Playgroud)
应用程序正在运行Local IIS,而不是IIS Express.
在IIS," Enable 32-bit applications"设置为false.
该应用程序是针对x64-bit平台而不是Any CPU.
在本地,我正在使用64-bit Windows 10和在服务器上,我正在使用64-bit Windows Server 2012.我无法ODP.NET在任何一个上工作.因此,32-bit据我所知,这似乎与二进制文件无关,ODP.NET而且两种操作系统都是64-bit.
编辑:应用程序池(暂时用于测试)使用与控制台应用程序相同的帐户运行,控制台应用程序是计算机的管理员.
我错过了什么?我怎样才能unmanaged ODP.NET (64-bit)工作中ASP.NET的64-bitO/S?
注意:这个问题看起来有点类似于其他问题,但它并不是我所知道的
注2:是的,我知道推荐的方法是使用managed ODP.NET,但我没有源代码,因此无法进行更改.
我尝试了一个简单的应用程序,它按我的预期工作。我的设置 Win 8.1,IIS
连接到 Oracle 后进程加载的 DLL 的屏幕截图
using (OracleConnection conn = new OracleConnection(connectionString))
{
conn.Open();
}
Run Code Online (Sandbox Code Playgroud)
基于ODP.Net文档
Oracle Data Provider for .NET、非托管驱动程序集
Oracle.DataAccess.Client 命名空间包含客户端提供程序的 ODP.NET 类和枚举。
我添加了对 Oracle.DataAccess.dll 的引用。这是我的项目中唯一的 Oracle DLL 参考。
在我的机器中,DLL 位于以下位置
\product\12.2.0\client_1\odp.net\bin\4\Oracle.DataAccess.dll
我使用Oracle 站点上的这个版本来安装 ODP.Net
安装的时候我特意选择了
(1) 不要更改 machine.config
(2) 不要在GAC中安装任何东西
所以,要尝试的事情:
(1) 从Oracle文件夹引用程序集(而不是GAC)
(2)安装最新可用的ODP.Net
祝你好运
| 归档时间: |
|
| 查看次数: |
1001 次 |
| 最近记录: |