C#等待连接。OpenAsync()挂起应用程序

C#等待连接。OpenAsync()挂起应用程序,c#,multithreading,asynchronous,task,C#,Multithreading,Asynchronous,Task,我在SO中尝试了多种解决方案,但都不起作用。在我的api中,我试图在另一个线程上异步调用一个方法并返回主线程 // in a normal method... I can't use await here string connectionString =_dbContext.Database.Connection.ConnectionString; Task.Factory.StartNew(() => CallMethodAsync(connectionString)); publ

我在SO中尝试了多种解决方案,但都不起作用。在我的api中,我试图在另一个线程上异步调用一个方法并返回主线程

// in a normal method... I can't use await here
string connectionString =_dbContext.Database.Connection.ConnectionString;
Task.Factory.StartNew(() => CallMethodAsync(connectionString)); 

public static async Task CallMethodAsync(string connectionString)
{
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
        await connection.OpenAsync().ConfigureAwait(false);
        using (SqlCommand command2 = connection.CreateCommand())
        {
            // this doesn't execute!
        }
    }
}
代码在wait connection.OpenAsync()处运行但挂起,不执行下一个块
有什么问题吗?

可能是您的连接字符串错误,可能是连接SQL Server超时。检查连接字符串中的服务器主机名是否正确?是否正在捕获重新调谐的
任务
?如果是这样,它可能会被标记为有故障,并带有一个您可以检查的异常。我觉得自己很笨。我认为,如果连接无效,它将抛出异常,这是一个错误的假设。我需要包括密码。谢谢你们!有人把它作为一个答案,它会抛出一个异常,但问题变成了:这个异常去了哪里?发生异常的调用堆栈是什么?当涉及工作线程和异步时,会变得很棘手