System.Data.OracleClient迁移到Oracle.ManagedDataAccess - ORA-12537:网络会话:文件结束

时间:2017-08-17 15:43:42

标签: .net oracle c#-4.0 database-connection odp.net

简介:

我目前正在开发一个使用Microsoft的OracleClient dll的MVC 4应用程序。我现在正计划迁移到Oracle的ManagedDatAccess.dll。

我根据Oracle提供的信息采取了步骤。

  

取代了OracleClient的所有提及。

//ie removed using System.Data.OracleClient
//added
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;
  

将我的所有oracle类型更新为新版本。

//ie removed public OracleType typeOracle { get; set; }
//added
public OracleDbType typeOracle { get; set; }
  

已配置Web.config

  <oracle.manageddataaccess.client>
    <version number="*">
      <LDAPsettings>
        <LDAPsetting name="DIRECTORY_SERVERS" value="(oidserverver.domain.com:3060:3131)" />
        <LDAPsetting name="DIRECTORY_SERVER_TYPE" value="oid" />
        <LDAPsetting name="DEFAULT_ADMIN_CONTEXT" value="dc=domain,dc=com" />
      </LDAPsettings>
      <settings>
        <setting name="NAMES.DIRECTORY_PATH" value="(TNSNAMES, LDAP)" />
        <setting name ="TNS_ADMIN" value="C:\app\product\12.1.0\client_1\network\admin" />
      </settings>
      <dataSources>
        <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) "/>
      </dataSources>
    </version>
  </oracle.manageddataaccess.client>
  

然后我尝试运行我的应用程序但得到以下例外:

[NetworkException (0x30f9): ORA-12537: Network Session: End of file]
[OracleException (0x80004005): ORA-12537: Network Session: End of file]
  

当我尝试打开连接时,它发生了:

    private void setConnection()
    {
        if (conn == null)
        {
            conn = new OracleConnection();

            conn.ConnectionString = _OracleConnectionString;
        }

        if (conn.State != ConnectionState.Open)
        {
            conn.Open(); // Throws exception here.
        }
    }

我是一个相当新的程序员,如果可能的话请具体说明我应采取的步骤。

1 个答案:

答案 0 :(得分:0)

我在我的机器上重新安装了oracle 12客户端。

独立......