SQLConnection使用隨機命名管道(445)而不是tcp(1433)。 namedpipes端口被我們的防火牆阻止,但不是tcp。這隻發生在試圖連接到我們的一臺sql服務器時。大多數情況下應用程序使用tcp,但隨機嘗試使用namedpipes端口。我們的sql連接非常簡單,我們不會對它做任何事情。SQLConnection使用隨機命名管道而不是tcp
我們不想硬編碼連接字符串上的tcp端口。我們已經嘗試解決這個問題。該問題僅在上週出現,而我們的Web應用程序嘗試連接時會有一段時間。
爲什麼sql連接有時試圖連接445而不是1433?它是由.net最新更新引入的錯誤還是服務器可以規定下一個要使用的端口?
UPDATE 2016年9月23日11:00
下面的代碼的示例中,我們使用連接
string connectionString = "Data Source=SERVERNAME;Initial Catalog=DATABASE;uid=username;pwd=mypass;MultipleActiveResultSets=True";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try {
connection.Open();
…
您可以發佈您的連接字符串代碼 – Ashu
如果這個連接是從最終用戶的個人電腦,網絡服務器,其他數據庫服務器等製成,你從來不提然而,無論是命名管道使用TCP或者是在本地連接設置啓動連接的PC。有關更多詳細信息,請參閱https://msdn.microsoft.com/en-us/library/ms181035.aspx。 – Igor
無論是Web服務器還是客戶端到sql服務器的PC連接。 – sebascomeau