C# 尝试在MVC 4应用程序中打开连接时出现ORA-06413错误

C# 尝试在MVC 4应用程序中打开连接时出现ORA-06413错误,c#,oracle,asp.net-mvc-4,iis-express,C#,Oracle,Asp.net Mvc 4,Iis Express,我有一个DLL,负责对数据库进行查询。在该DLL中,我有一个打开应用程序和数据库之间连接的方法,如下所示: private OracleConnection _InitConnection() { this.LastException = null; this.Errors = new List<Exception>(); OracleConnection conn = null; try { conn = n

我有一个DLL,负责对数据库进行查询。在该DLL中,我有一个打开应用程序和数据库之间连接的方法,如下所示:

private OracleConnection _InitConnection()
{
    this.LastException = null;
    this.Errors        = new List<Exception>();

    OracleConnection conn = null;

    try
    {
        conn = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=***)(PORT=***)))(CONNECT_DATA=(SERVICE_NAME=****)(SERVER = DEDICATED))); User Id=***; Password=***;");

        conn.Open();
    }
    catch (Exception ex)
    {
        this.LastException= ex;
        this.Errors.Add(ex);
    }

    return conn;
}
专用OracleConnection\u InitConnection()
{
this.LastException=null;
this.Errors=新列表();
OracleConnection conn=null;
尝试
{
conn=新的OracleConnection(“数据源=(描述=(地址=(协议=TCP)(主机=***)(端口=***))(连接数据=(服务名称=***)(服务器=专用));用户Id=***;密码=***;”;
conn.Open();
}
捕获(例外情况除外)
{
this.LastException=ex;
此.Errors.Add(ex);
}
返回连接;
}
我使用版本为2.0.50727的
System.Data.OracleClient.dll来管理连接

此DLL由MVC4 Web应用程序使用,该应用程序使用C#和.Net Framework 4.0实现

当我在Windows窗体项目中使用此DLL时,我可以毫无困难地连接到数据库。然而,当我尝试在MVC系统中使用相同的DLL或使用WebForms时,我会得到一个错误

我得到的错误是
ORA-06413-连接未打开
。在ISS Express中运行应用程序时会发生这种情况,设置为以32位运行


当我将ISS Express更改为64位时,我得到的错误是:OCIEnvCreate失败,返回代码为-1,但错误消息文本不可用

我想我已经找到了问题所在

在这个项目中,我使用了另一个项目中的一些库。其中一个在.csproj文件中配置如下

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
 <DebugSymbols>true</DebugSymbols>
 <DebugType>full</DebugType>
 <Optimize>false</Optimize>
 <OutputPath>bin\Debug\</OutputPath>
 <DefineConstants>TRACE;DEBUG</DefineConstants>
 <ErrorReport>prompt</ErrorReport>
 <WarningLevel>4</WarningLevel>
 <PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>

真的
满的
假的
bin\Debug\
痕迹;调试
促使
4.
任意CPU
这意味着此程序的编译版本将存储在\bin\Debug路径中。 但是,我用来测试库的控制台应用程序具有以下配置:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
 <DebugType>pdbonly</DebugType>
 <Optimize>true</Optimize>
 <OutputPath>bin\Release\</OutputPath>
 <DefineConstants>TRACE</DefineConstants>
 <ErrorReport>prompt</ErrorReport>
 <WarningLevel>4</WarningLevel>
 <Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>

pdbonly
真的
bin\Release\
痕迹
促使
4.
假的
Wich表示程序的输出将存储在bin\Release中。 这导致了问题,因为当我的控制台应用程序试图使用该库时,它位于另一个文件夹中。
在VS2015中无法解决这个问题,但当我将控制台应用程序的属性组更改为与库相同的配置时,问题就迎刃而解了。

我想我已经找到了问题所在

在这个项目中,我使用了另一个项目中的一些库。其中一个在.csproj文件中配置如下

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
 <DebugSymbols>true</DebugSymbols>
 <DebugType>full</DebugType>
 <Optimize>false</Optimize>
 <OutputPath>bin\Debug\</OutputPath>
 <DefineConstants>TRACE;DEBUG</DefineConstants>
 <ErrorReport>prompt</ErrorReport>
 <WarningLevel>4</WarningLevel>
 <PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>

真的
满的
假的
bin\Debug\
痕迹;调试
促使
4.
任意CPU
这意味着此程序的编译版本将存储在\bin\Debug路径中。 但是,我用来测试库的控制台应用程序具有以下配置:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
 <DebugType>pdbonly</DebugType>
 <Optimize>true</Optimize>
 <OutputPath>bin\Release\</OutputPath>
 <DefineConstants>TRACE</DefineConstants>
 <ErrorReport>prompt</ErrorReport>
 <WarningLevel>4</WarningLevel>
 <Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>

pdbonly
真的
bin\Release\
痕迹
促使
4.
假的
Wich表示程序的输出将存储在bin\Release中。 这导致了问题,因为当我的控制台应用程序试图使用该库时,它位于另一个文件夹中。
在VS2015中无法解决这个问题,但当我将控制台应用程序的属性组更改为与库相同的配置时,问题就迎刃而解了。

我看到的大多数解决方案都是由于应用程序的位置。似乎它不喜欢路径中的奇怪角色等。尝试将解决方案移动到仅使用字母数字命名的短路径。我看到的大多数解决方案都是由于应用程序的位置。似乎它不喜欢路径中的奇怪角色等。尝试将解决方案移动到仅使用字母数字命名的短路径。