我有一个简单的 C#HttpTrigger
Azure 函数,可以从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 在以前的部署中,这些线路在那里,一切都很好。 去图。