Azure CosmosDB C# 函数在几天前工作 - 现在它没有 - "Error indexing method"



我有一个简单的 C#HttpTriggerAzure 函数,可以从CosmosDB检索数据:

namespace urda
{
public static class GetAccount
{
[FunctionName("GetAccount")]
public static IActionResult Run(
[HttpTrigger(
AuthorizationLevel.Anonymous, 
"get", 
Route = "account/{id}")] HttpRequest req,
[CosmosDB(
"UrdaDemo", 
"Accounts",
ConnectionStringSetting = "CosmosDBConnection",
SqlQuery = "select * from Accounts a where a.id = {id}")]
IEnumerable<Account> accounts,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
foreach (Account account in accounts)
{
log.LogInformation(account.id);
}
return new OkObjectResult(accounts);
}
}
}

该功能直到几天前(最后一次检查是在 11 月 22 日(才运行良好,现在它没有。 它给了我以下错误?

函数 (urda/getAccount( 错误: Microsoft.Azure.WebJobs.Host: 索引方法"GetAccount"时出错。Microsoft.Azure.WebJobs.Host:无法将参数"accounts"绑定到类型 IEnumerable'1。确保绑定支持参数 Type。如果使用绑定扩展(例如 Azure 存储、服务总线、计时器等(,请确保已在启动代码中调用扩展的注册方法(例如生成器(。AddAzureStorage((, builder.AddServiceBus((, builder.AddTimers((,等等(。

我没有更改任何内容或重新部署功能,不确定为什么会出现此错误? "确保已在启动代码中调用扩展的注册方法(例如builder.AddAzureStorage()..."?

我使用Visual Studio重新创建并重新部署了函数,它工作正常。 在比较工件时,我的Visual Studio Code项目和我发现的Visual Studio项目之间的唯一区别是在host.json中:

{
"version": "2.0",
-    "extensionBundle": {
-        "id": "Microsoft.Azure.Functions.ExtensionBundle",
-        "version": "[1.*, 2.0.0)"
-    }
}

不再需要标有"-"的行。 这解决了问题。 BUt 在以前的部署中,这些线路在那里,一切都很好。 去图。

相关内容

最新更新