我正在尝试将azure SDK从v1更新到v3,并将其连接到Azure存储模拟器进行测试;使用控制台应用程序和.NET Framework。
似乎不像以前使用过的任何触发器,错误中的“ SomeFunction”是带有超时的简单QueueTrigger。
异常:Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException:'错误索引方法'* .SomeFunction'
内部异常:InvalidOperationException:未配置存储帐户“存储”。
open = State.objects.get(id=1)
open.isOpen = True
post.save()
app.config:
[Timeout("00:30:00")]
public static async Task SomeFunction([QueueTrigger("queue")] CloudQueueMessage message, CancellationToken cancellationToken)
{
// do stuff
}
答案 0 :(得分:6)
Microsoft.Azure.WebJobs的版本3不再配置有app.config
文件,而是配置了appSettings.json
文件。将其放置在应用程序的根目录中,并确保将 appSettings.json 文件的“ 复制到输出目录”属性设置为如果更新则复制< / em>或始终复制,或直接使用 Always 或 PreserveNewest 将其直接添加到.csproj
文件中:
<Project ...>
...
<ItemGroup>
<None Include="appSettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
...
</Project>
您的appSettings.json
文件应具有存储连接字符串:
{
"ConnectionStrings": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
}
}
{
"ConnectionStrings": {
"AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=key;..."
}
}
有关在版本3中进行配置的更多信息,请参见this .NET Core 2.1 sample host application。尽管它可能与您使用的.NET Framework有所不同。