.net core linux环境下 System.Data.SqlClient.SqlException: Connection Timeout Expired.
最近遇到了一个很奇葩的问题,我编写了一个.net core程序读取多个数据库数据源,进行数据同步处理。该程序在windows环境下运行完全正常,但在linux环境下运行报异常,提示
System.Data.SqlClient.SqlException: Connection Timeout Expired. The timeout period elapsed during the post-login phase.
更奇葩的地方在于在linux环境下,两个数据库,一个读取正常,一个读取异常。我考虑了各种原因,端口问题,连接串问题,表名中文问题,视图问题,ORM问题(从EF切换到dapper)始终无法定位真正的原因。
最后发现net core 的System.Data.SqlClient最低支持SqlServer 2008 R2 SP3,小于这个版本的就会报错(见引用)。看来.net core不是银弹,坑还是有的。
引用:
https://www.cnblogs.com/xiaxiaolu/p/10309064.html>
https://github.com/dotnet/corefx/issues/9719
本文采用 知识共享署名 4.0 国际许可协议 进行许可