C# 异步方法签名错误。必须返回void、Task或Task<;T>;

C# 异步方法签名错误。必须返回void、Task或Task<;T>;,c#,asynchronous,C#,Asynchronous,我有一个异步方法 private static async Task InsertConnectionStatusIntoAzureDatabaseAsync(Device device) { ... } 我称之为使用 await InsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false); VisualStudio将不会生成异步方法必须返回void、Task或Task 它还将行InsertCon

我有一个异步方法

private static async Task InsertConnectionStatusIntoAzureDatabaseAsync(Device device)
{
   ...
}
我称之为使用

await InsertConnectionStatusIntoAzureDatabaseAsync(device).ConfigureAwait(false);
VisualStudio将不会生成
异步方法必须返回void、Task或Task

它还将行
InsertConnectionStatusIntoAzureDatabaseAsync(设备)以红色扭曲说:

任务不包含ConfigureAwait()的定义

文件顶部的用法是

using System.Threading.Tasks;
using System.Threading;

它的目标.net framework是4.6.1

几乎可以肯定,您的项目中还有另一个名为
Task
的类,它与.net framework版本相冲突。您可以通过转到
任务
类型的定义来检查这一点,并查看它会将您引向何方。因此,请将您的版本重命名为不同的名称(可能是最好的选择),或者使用完整的名称空间:

private static async System.Threading.Tasks.Task InsertConnectionStatusIntoAzureDatabaseAsync()
{
    //snip
}

您还可以使用名称空间别名,并在方法中使用它,如signatire

using task = System.Threading.Tasks;

    private static async task.Task InsertConnectionStatusIntoAzureDatabaseAsync(Device device)
    {
       ...
    }

你的项目中是否有一个冲突的类,也称为
Task
!就这样。有一个类隐藏在247000行文件中,名为Task!如果你把这个作为答案,我会把它标记为正确的。247k行?!我希望这是自动生成的,或者你真的需要做一些重构!