Asp.net web应用程序的Oracle.DataAccess.dll连接失败

Asp.net web应用程序的Oracle.DataAccess.dll连接失败,asp.net,vb.net,oracle,dll,oracle11g,Asp.net,Vb.net,Oracle,Dll,Oracle11g,我正在asp.net中开发web应用程序,我们使用Oracle 11g 64位服务器作为后端,通过以下代码连接失败: 我正在64位编译环境下使用Visual Studio 2012(4.5) 我所尝试的: 我尝试连接oracle data access,dll,该dll将执行oracle db连接,它在windows应用程序上连接,但在web应用程序上尝试以下代码时失败: Imports System.Data Imports Oracle.DataAccess.Client ' ODP.NET

我正在asp.net中开发web应用程序,我们使用Oracle 11g 64位服务器作为后端,通过以下代码连接失败:

我正在64位编译环境下使用Visual Studio 2012(4.5)

我所尝试的:

我尝试连接oracle data access,dll,该dll将执行oracle db连接,它在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位运行时,会出现此问题

欢迎提供解决此问题的任何指导


提前感谢

抱歉,我无法发表评论,因此我将作为答案发布。您的ODP.Net库是32位的,web应用程序需要64位才能使用。在windows环境中,您可以在64位环境中运行64位和32位应用程序,但在IIS中,您必须使用相同的环境库才能工作


抱歉,我无法发表评论,因此我将作为答案发布。您的ODP.Net库是32位的,web应用程序需要64位才能使用。在windows环境中,您可以在64位环境中运行64位和32位应用程序,但在IIS中,您必须使用相同的环境库才能工作


如另一个SO帖子(Y.Ecari)所述:

这个问题以前已经解决过:


如另一个SO帖子(Y.Ecari)所述:

这个问题以前已经解决过:


所以,问题是:您是否安装了32位oracle客户端?@Steve nope我预装了64位服务器,我没有安装32位oracle客户端您是否将您的应用程序编译为任何CPU作为目标平台?。如果您尝试切换到x86目标平台(如果可能的话),这些32位驱动程序应该可以工作。@Steve yup我尝试使用anyCPU作为目标平台,但不起作用,使用相应的x64在windows应用程序中工作正常,而不是在web应用程序中。我第一次尝试从web服务连接到Oracle,我必须让运行IIS的用户(通常是网络服务)访问HD上的Oracle文件夹。我花了几个小时试图找到正确的文件夹和安全设置,但放弃了,只给了它对整个文件夹的读/写权限。很抱歉,我再也找不到确切的链接了。所以,问题是:您是否安装了32位oracle客户端?@Steve nope我预装了64位服务器,我没有安装32位oracle客户端您是否将您的应用程序编译为任何CPU作为目标平台?。如果您尝试切换到x86目标平台(如果可能的话),这些32位驱动程序应该可以工作。@Steve yup我尝试使用anyCPU作为目标平台,但不起作用,使用相应的x64在windows应用程序中工作正常,而不是在web应用程序中。我第一次尝试从web服务连接到Oracle,我必须让运行IIS的用户(通常是网络服务)访问HD上的Oracle文件夹。我花了几个小时试图找到正确的文件夹和安全设置,但放弃了,只给了它对整个文件夹的读/写权限。对不起,我再也找不到确切的链接了。