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