zoukankan      html  css  js  c++  java
  • C#通过Oracle.ManagedDataAccess无法访问Oralce (转)

    原文转自:https://www.cnblogs.com/duanjt/p/6955173.html

    问题描述:
    通过C#引用Oracle.ManagedDataAccess.dll访问Oracle,写了如下一段代码,在本机能正常访问,但是将编译后的exe放到服务器上面就无法访问了,一直提示登录失败。
    而服务器上面的pl/sql却能够正常访问数据库。

    static void Main(string[] args)
    {
        string connStr=string.Empty;
        try
        {
            connStr = string.Format(@"User Id={3};Password={4};  Data Source=(description=(address_list = (address = (HOST = {0})(PROTOCOL = TCP)(PORT= {1})))(connect_data=(service_name={2})));", "172.23.11.152", "1521", "orcl", "system", "oracle123");
            using (OracleConnection conn = new OracleConnection(connStr))
            {
                OracleCommand comm = new OracleCommand("select count(1) from wifi.site_info", conn);
                conn.Open();
                object a = comm.ExecuteScalar();
                conn.Close();
    
                Console.WriteLine(a);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
            Console.WriteLine("连接字符串:" + connStr);
        }
    
        Console.Read();
    }

    解决:
    经过多方面查找资料,最后在一篇英文网站上面提到是FIPS加密的原因导致,至于如何解决,网上给到的答案大多就是将FIPS关闭了。关闭方法如下:
    1.输入regedit打开系统注册表
    2.找到路径 HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsa
    3.查看右边的FIPSAlgorithmPolicy属性修改为0
    4.找到路径 HKEY_LOCAL_MACHINESystemCurrentControlSetControlLsaFipsAlgorithmPolicy
    5.查看右边的Enabled修改为0 即可。

  • 相关阅读:
    sql语句相关操作
    点菜系统数据库课程设计
    JDBC连接mysql编程
    JFrame画图基础和事件监听
    JFrame编程
    Java基础知识
    bzoj1047-理想的正方形(二维单调队列)
    Project Eular 233/ BZOJ 1041
    Open Train 10352
    Codeforces Round 492 (Div.1)
  • 原文地址:https://www.cnblogs.com/xiaoerlang90/p/10487321.html
Copyright © 2011-2022 走看看