我有一個dll,里面有一個程序是用于往資料庫的日志表中插入日志。代碼如下:
const string linkString = "Data Source=172.31.1.2;Initial Catalog=RPADashboard;Persist Security Info=True;User ID=RPADashboardDev;Password=密碼;MultipleActiveResultSets=true";
public void Log(string projectCode, string info, string tCode = "", string entity = "", string taskName = "")
{
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
string sql = "INSERT INTO PROJECT_LOG (StepTime, BotName, ProjectCode, StepInfo, TCode, Entity, TaskName) ";
sql += "VALUES(GETDATE(),'" + Environment.UserName.ToUpper() + "','" + projectCode + "','" + info.Replace("'","''") + "',";
sql += "'" + (tCode == "-" ? "" : tCode) + "','" + (entity == "-" ? "" : entity) + "','" + (taskName == "-" ? "" : taskName) + "')";
SqlConnection conn = new SqlConnection(linkString);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.ExecuteNonQuery();
conn.Close();
}
客戶端WIN7、WIN10情況下,呼叫都沒有問題。但是現在有一臺新客戶端,系統是Windows Server 2012 R2 Datacenter,在這臺客戶端上運行,就會報錯:
Error Description : 已成功與服務器建立連接,但是在登錄程序中發生錯誤。 (provider: SSL Provider, error: 0 - 因為演算法不同,客戶端和服務器無法通信。)
后來我在連接字串中加上了:Encrypt=True;TrustServerCertificate=True; 但是結果仍然一樣。我的SQL Server服務器版本是SQL Server 2008 R2,已啟用TLS1.2,但是不清楚為什么從Windows Server 2012訪問就不行呢?應該如何排查呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/193209.html
標籤:C#
