我正在尝试使用以下代码将产品列表推送到Google:
string path = HttpContext.Current.Server.MapPath("/keya.p12");
String serviceAccountEmail = "#######@developer.gserviceaccount.com";
var certificate = new X509Certificate2(@path, "notasecret", X509KeyStorageFlags.Exportable);
var init = new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { Google.Apis.Content.v2.ContentService.Scope.Content }
}.FromCertificate(certificate);
ServiceAccountCredential credential = new ServiceAccountCredential(init);
// Create the service.
service = new Google.Apis.Content.v2.ContentService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "MY APP",
});
service.Products.Insert(p, ######).Execute();
但是,无论我做什么,我都会在该行上收到此错误:
方法 System.Runtime.CompilerServices.AsyncTaskMethodBuilder
1[System.Net.Http.HttpResponseMessage].AwaitUnsafeOnCompleted: type argument 'Microsoft.Runtime.CompilerServices.ConfiguredTaskAwaitable
1 + ConfiguredTaskAwaiter [System.Net.Http.HttpResponseMessage]' 违反了类型参数约束' TAwaiter'
我在WebAPI控制器中运行此代码。我也尝试过Generic Handler并得到同样的错误。我找到的一个引用是说我更新了我的Microsoft.Bcl包,我没做任何更改。
答案 0 :(得分:0)
我建议您更新整个Google.Apis.Calendar.v3库。
在您的NuGet控制台中,执行Install-Package Google.Apis.Calendar.v3
以获取最新版本的软件包及其依赖项。
在向服务帐户拨打日历时,我遇到了同样的错误。我正在使用该库的1.8.1.820版本。更新为我解决了问题。