【发布时间】:2019-11-06 01:14:17
【问题描述】:
我将具有 .NET Core 2.2 和 .NET Standard 2.0 的项目的解决方案升级到 .NET Core 3.0 和 .NET Standard 2.1。
在使用 .NET Standard 框架构建的项目中,有一行代码提出了以前没有的问题
private _connectionString = " stuff here ";
public List<Character> GetAll(int take, int skip, string orderBy, string sortOrder)
{
...
using (IDbConnection conn = new SnowflakeDbConnection())
{
conn.ConnectionString = _connectionString;
if (conn != null && conn.State == ConnectionState.Closed)
conn.Close();
try {
conn.Open();
}
catch(Exception ex)
{
throw ex;
}
...
}
当代码到达conn.Open()时,它只是挂起直到最终返回
TaskCanceledException:任务被取消。
它没有提供更多信息。奇怪的是,第一次调用此方法时,它实际上工作得很好。然后我刷新了页面,从那以后它就坏了。直到我坐了一段时间,它又返回了正确的数据——然后在刷新或解决方案的另一个构建时随机中断。
我怀疑框架的升级只是巧合,这更有可能是连接源服务器/数据库的问题?
更新:在 Snowflake 上运行 SYSTEM$WHITELIST(),复制 json 结果并将其保存到名为 whitelist.json 的文件中后,我在本地计算机上运行了以下命令:
snowcd .\whitelist.json
Performing 33 checks for 13 hosts
All checks passed
【问题讨论】:
-
a) 使用
throw;而不是throw ex;b) 请提供minimal reproducible example。 -
SnowflakeDbConnection来自哪里?他们升级到相应的 3.0/标准 2.1 了吗? -
似乎连接字符串可能有错误。使用
SnowflakeDbConnection打开连接时,有多个报告相同错误的问题:github.com/snowflakedb/snowflake-connector-net/issues/160、github.com/snowflakedb/snowflake-connector-net/issues/97
标签: c# .net-core .net-standard snowflake-cloud-data-platform