我有一個C#應用程序,它使用Linq to SQL與數據庫進行通信,並且在我上個月測試它時工作得很好。然而,它現在拋出以下異常:在登錄前握手過程中發生錯誤
A first chance exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll
------ Exception ------
Error: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0 - The received certificate has expired.)
我數字簽名使用Verisign的鍵碼,但它並沒有過期。在構建安裝程序之前,我沒有進行數字簽名,而且這種情況發生在我的開發系統中進行調試,所以代碼沒有被簽名。
它也發生在軟件簽名和安裝的其他系統上。這些系統訪問我在我的開發系統上使用的相同測試數據庫,並且以前都在工作。
的導致該錯誤代碼行如下:
List<req> results = new List<req>();
using (var db = new MyDbDataContext(connectionString))
{
var query =
from item in db.reqs
where item.senddate == null
select item;
results = query.ToList();
}
當我打電話results = query.ToList();
錯誤發生。
我用下面的連接字符串:
Data Source=<removed>;Initial Catalog=<removed>;UID=sa;PWD=<removed>;Encrypt=true;Integrated Security=false
我能如果我設置加密= false來連接,但是這不是一個可行的解決方案。
再一次,這工作得很好,幾個星期前我最後一次測試它。任何有關可能發生的事情的見解都將不勝感激。
您試圖在不同計算機上連接到客戶端的數據庫?您是否按照「[加密連接到SQL Server](http://msdn.microsoft.com/zh-cn/library/ms189067.aspx)」中所述使用加密連接? *有*證書過期了,如果是的話? – Carson63000
Db位於公司網絡內的單獨服務器上。我正在使用Windows身份驗證和加密。 Verisign證書尚未過期。 – Tim
仔細檢查您是否正確點擊數據庫服務器。 –