平台是VS2013,用odt进行连接或者用引用连接,都显示连接请求超时,网上的办法都试过了,同学说可能是监听器和适配器问题,也没有找到。三个软件都重装过,还是找不到原因。
请大家帮忙看看

解决方案 »

  1.   

    在nuget管理器里下载
    Oracle.ManagedDataAccess,
    如果要用EF,还要下载
    Oracle.ManagedDataAccess.EntityFramework
      

  2.   

    连接的话,要配置odt的tnsnames.ora,而不是其他什么oracle客户端的tnsnames.ora
      

  3.   

    要先安装orace客户端,然后看客户端连接正常不,再用vs调试
      

  4.   

    哦对了,你是直接用odt,我是用odp.net,所以netget里下载那2个再去java官网下载oracle对应版本的odac and odt,装机器上
    ODAC 12.2c Release 1 and Oracle Developer Tools for Visual Studio 然后去对应的目录下配置tnsnamesC# 连接Oracle(利用ODP.net,不安装oracle客户端)
      

  5.   

    说错了,是odp,说成odt了,在oracle官网下载的
      

  6.   

    我用配置tnsname.ora的方式,没搞成功。后来用Oracle.ManagedDataAccess搞成了,而且也不用ora配置。最后的连接串是:Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xx.xx.xx)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sforacle)));User Id=test;Password=xxxx;
      

  7.   

    下载了程序包,不行,还是连接请求超时ls这种直接连接字符串也是可以的比如我用的是2015,用的这个 ODTforVS2015https://pan.baidu.com/s/1T-ppQgD1kzpUzEWn76WVBA
    提取码: 3wwy安装完后配置C:\Program Files (x86)\Oracle Developer Tools for VS2015\network\admin\tnsnames.ora
    <data source alias> =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname or IP>)(PORT = <port>))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = <database service name>)
        )
      )        public LocalEntities()
                : base(Functions.GetConnectionString_Remote())
            {
            }
            static public string GetConnectionString_Remote(bool isOnlySqlString = false)
            {
                return GetOracleConnectionString("Remote", isOnlySqlString);
            }
            static string GetOracleConnectionString(string name, bool isOnlyOracleString = false)
            {
                Configuration configuration = OpenCustomConfigFile();
                Oracle.ManagedDataAccess.Client.OracleConnectionStringBuilder oracleConnectionStringBuilder = new Oracle.ManagedDataAccess.Client.OracleConnectionStringBuilder();            oracleConnectionStringBuilder.DataSource = GetConfigValue(configuration, "DataSource_" + name);
                oracleConnectionStringBuilder.UserID = GetConfigValue(configuration, "UserID_" + name);
                oracleConnectionStringBuilder.Password = Decrypt(GetConfigValue(configuration, "Password_" + name));            if (isOnlyOracleString)
                {
                    return oracleConnectionStringBuilder.ToString();
                }            EntityConnectionStringBuilder entityConnectionStringBuilder = new EntityConnectionStringBuilder();
                entityConnectionStringBuilder.Provider = "Oracle.ManagedDataAccess.Client";
                entityConnectionStringBuilder.ProviderConnectionString = oracleConnectionStringBuilder.ToString();
                entityConnectionStringBuilder.Metadata = string.Format("res://*/Model.EFModel_{0}.csdl|res://*/Model.EFModel_{1}.ssdl|res://*/Model.EFModel_{2}.msl", name, name, name);            return entityConnectionStringBuilder.ToString();
            }