【发布时间】:2021-05-13 01:29:20
【问题描述】:
我有一个问题:
我正在使用 .net core 3.1 WPF 应用程序连接到 MSSQL SERVER 2016。 代码:
SqlConnection conn = new SqlConnection("Server=MYSERVERNAME\\SQLEXPRESS;Database=MYDB;User ID=dbRead;Password=myPASSWORD;");
conn.Open();
我搜索了很多,发现了这个:https://github.com/dotnet/SqlClient/issues/367
过了一会儿,我得到了一个超时异常,所以我添加了Connect Timeout=60
现在可以建立连接了,但可能需要 >20 秒。
服务器还安装了 2012 年的旧版 MSSQLSERVER。
(因为我们从 2012 年升级到 2016 年)
这个版本有实例 MSSQL 和这个实例和相同的连接字符串 (MYSERVERNAME\\MSSQL) 我没有问题。
如果 iam 使用 .netframework 应用程序,则不会发生错误。
所以我不知道我要做什么?
也许有人遇到了同样的问题。
谢谢
更新: 经过一番研究,我发现了这一点:
Dot net Core – How to fix: TimeOut-Error to MSSQL 2017 (which does not happen with .Net 4.7.1)
通过在连接字符串的服务器参数中指定 np: 限定符来强制使用命名管道
SqlConnection conn = new SqlConnection("Server=np:xxx.xxx.xxx.xxx\\SQLEXPRESS;Database=MYDB;User ID=dbRead;Password=myPASSWORD;");
conn.Open();
【问题讨论】:
-
您在使用
Microsoft.Data.SqlClient而不是System.Data.SqlClient时是否看到同样的问题? -
是的,我都试过了。对于 Microsoft.Data.SqlClient 我添加了这个:
到 App.config。希望这是正确的? -
通过在连接字符串的服务器参数中指定 np: 限定符来强制使用命名管道来完成这项工作
标签: sql-server .net-core