【发布时间】:2013-10-23 12:46:20
【问题描述】:
我在asp.net中开发web应用,我们使用Oracle 11g 64位服务器作为后端,通过以下代码连接失败:
我在64位编译环境下使用Visual Studio 2012(4.5),
我尝试过的:
我尝试连接 oracle 数据访问,将执行 Oracle db 连接的 dll,它连接到 Windows 应用程序,而尝试在 Web 应用程序上使用以下代码失败:
Imports System.Data
Imports Oracle.DataAccess.Client ' ODP.NET Oracle managed provider
Imports Oracle.DataAccess.Types
Public Class RafiqClass
Public Sub Intm()
Try
Dim oradb As String = "Password=valuesol;Persist Security Info=True;User ID=system;Data Source=orcle"
Dim conn As New OracleConnection(oradb)
conn.Open()
Dim cmd As New OracleCommand
cmd.Connection = conn
cmd.CommandText = "select department_name from departments where department_id = 10"
cmd.CommandType = CommandType.Text
Dim dr As OracleDataReader = cmd.ExecuteReader()
dr.Read()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
我已经为这个 dll 添加了参考和库创建,但它仍然不能用于 Web 应用程序
发生了什么错误:
尝试加载 oracle 客户端库引发了 badimageformatexception。安装32位oracle客户端组件在64位运行时会出现此问题。
欢迎任何解决此问题的指导。
提前致谢
【问题讨论】:
-
那么,问题是:你安装了32位的oracle客户端吗?
-
@Steve nope 我预装了 64 位服务器,我没有安装 32 位 oracle 客户端
-
您是否为 AnyCPU 作为目标平台编译了您的应用程序?如果您尝试切换到 x86 目标平台(如果可能),那些 32 位驱动程序应该可以工作。
-
@Steve 是的,我尝试使用 anyCPU 作为目标平台,但它没有工作,使用相应的 x64 它在 Windows 应用程序而不是 Web 应用程序中工作正常
-
第一次尝试从 Web 服务连接到 Oracle 时,我必须让运行 IIS 的用户(通常是网络服务)访问 HD 上的 Oracle 文件夹。我尝试了几个小时来找到正确的文件夹和安全设置,但放弃了,只是给了它对整个文件夹的读/写访问权限。抱歉,我找不到确切的链接了。
标签: asp.net vb.net oracle dll oracle11g