我遇到与this question
完全相同的问题但没有一个答案有效,谷歌搜索了很长时间,我的版本更新等,但我仍然得到同样的错误
代码是示例模板
using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
namespace NWMPosNGPimFeeder
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, TraceWriter log)
{
log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
}
}
}
主机等的版本如下,包括实际错误
[21/5/2018 2:03:29 AM] Host has been specialized
Listening on http://localhost:7071/
Hit CTRL-C to exit...
[21/5/2018 2:03:29 AM] Reading host configuration file 'C:\Users\MattDouhan\source\repos\NWMPosNGPimFeeder\NWMPosNGPimFeeder\bin\Debug\net461\host.json'
[21/5/2018 2:03:29 AM] Host configuration file read:
[21/5/2018 2:03:29 AM] {
[21/5/2018 2:03:29 AM] }
[21/5/2018 2:03:30 AM] Loaded custom extension 'BotFrameworkConfiguration'
[21/5/2018 2:03:30 AM] Loaded custom extension 'SendGridConfiguration'
[21/5/2018 2:03:30 AM] Loaded custom extension 'EventGridExtensionConfig'
[21/5/2018 2:03:31 AM] Generating 1 job function(s)
[21/5/2018 2:03:31 AM] Starting Host (HostId=desktop7cks1do-1972353084, Version=1.0.11232.0, ProcessId=2668, Debug=False, Attempt=0)
[21/5/2018 2:03:31 AM] A ScriptHost error has occurred
[21/5/2018 2:03:31 AM] Microsoft.Azure.WebJobs.Host: Error indexing method 'Function1.Run'. Microsoft.Azure.WebJobs.Host: Cannot bind parameter 'log' to type TraceWriter. Make sure the parameter Type is supported by the binding. If you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. config.UseServiceBus(), config.UseTimers(), etc.).
[21/5/2018 2:03:31 AM] Error indexing method 'Function1.Run'
答案 0 :(得分:1)
问题位于VS正在使用的旧函数cli。
版本= 1.0.11232.0
这意味着cli版本为1.0.4
。这个旧版本确实会引起您的问题,但已经修复了新版本。
检查您的Azure Functions and Web Jobs Tools
版本。
最新扩展15.0.40502.0
,如果VS无法下载新版本cli,则会使VS使用cli 1.0.4
。此下载过程在后台,似乎没有明确的警告。请参阅This GitHub issue。
<强>解决方案强>
我建议您删除C:\Users\UserName\AppData\Local\AzureFunctionsTools
文件夹并重新启动VS以重新下载。
当我们创建一个功能应用时,我们可以在Making sure all templates are up to date...
等一会儿,我们可以看到提示更改为
如果3米后没有变化(下载200M文件的时间),请检查C:\Users\UserName\AppData\Local\AzureFunctionsTools\Releases\1.0.12.1
文件夹以查看它是否为空。如果它是空的,这意味着无法通过VS完成下载。我们必须手动完成。
您可以在C:\Users\UserName\AppData\Local\AzureFunctionsTools\feed.json
找到cli,itemTemplates和projectTemplates的下载链接。
您可以参考1.0.10
文件夹来构建类似的文件夹结构。