C#通過Oracle.ManagedDataAccess無法訪問Oralce


問題描述:
通過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();
}
View Code

 

解決:
經過多方面查找資料,最后在一篇英文網站上面提到是FIPS加密的原因導致,至於如何解決,網上給到的答案大多就是將FIPS關閉了。關閉方法如下:
1.輸入regedit打開系統注冊表
2.找到路徑 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa
3.查看右邊的FIPSAlgorithmPolicy屬性修改為0
4.找到路徑 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy\
5.查看右邊的Enabled修改為0 即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM