我尝试部署使用Blob Trigger的预编译Azure函数。 发布函数后,我在Kudu中出现以下错误,我的函数未执行:
2017-05-30T14:34:11.436 Starting Host (HostId=sfl-data-forecast-dev-funcs, Version=1.0.10945.0, ProcessId=17328, Debug=True, Attempt=0)
2017-05-30T14:34:11.436 Development settings applied
2017-05-30T14:34:11.436 No job functions found. Try making your job classes and methods public. 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.).
2017-05-30T14:34:11.436 Job host started
2017-05-30T14:34:11.436 The following 1 functions are in error:
Import: The function type name 'Forecasts.Functions.ImportForecastsFunction' is invalid.
我不明白为什么会出现这个错误。 Azure功能位于以框架4.6.1为目标的Web项目中。添加了WebJob SDK和Extensions nuget包。我已将Newtonsoft.Json
降级为版本9.01,但它没有改变任何内容。
我有以下function.json:
{
"scriptFile": "..\\bin\\SFL.Data.Forecasts.Functions.dll",
"entryPoint": "SFL.Data.Forecasts.Functions.ImportForecastsFunction.Run",
"bindings": [
{
"name": "file",
"type": "blobTrigger",
"direction": "in",
"path": "forecasts/{name}",
"connection": "HotStorageAccount.ConnectionString"
}
],
"disabled": false
}
答案 0 :(得分:7)
遇到相同的异常。原来运行时版本无效。即使该函数引用的是netcore2.1,也被错误地定义为〜1,但运行时版本1不支持。
特别是,无效版本是由基于ARM模板的资源组部署引起的,将功能应用程序的参数FUNCTIONS_EXTENSION_VERSION定义为〜1而不是〜2。
答案 1 :(得分:0)
我通过为Azure Function文件提供命名空间来解决问题。
命名空间MyProject.AppFunctions
这是我的班级:
namespace MyProject.AppFunctions
{
public static class SomeFunction
{
public static async Task<HttpResponseMessage> Run(...)
{
// CODE
}
}
}
这是我的functions.json文件:
{
"scriptFile": "..\\bin\\MyProject.AppFunctions.dll",
"entryPoint": "MyProject.AppFunctions.SomeFunction.Run",
...
}
答案 2 :(得分:0)
FWIW,我刚刚解决了同样的问题。问题是在我的调试器设置中,它指向func.exe
应用程序的旧版本。我将调试器设置切换为启动%AppData%\npm\func.cmd
,一切正常。
答案 3 :(得分:0)
(解决方案)函数(FunctionName / CsvUpload)错误:函数类型名称'Functions.CsvUpload'无效
我已通过将Azure配置中的值从〜1设置为〜2解决了该错误。确保您必须使用Visual Studio 2019和Microsoft.NET.Sdk.Functions 3.0.2在使用dotnet core 3.0时,一定要使用!如果您使用的是Visual Studio 2017,则必须将sdk版本设置为低于3.0.2(Microsoft.NET.Sdk.Functions:1.0.29之类),然后才可以设置FUNCTIONS_EXTENSION_VERSION =〜1
如果您使用Visual Studio 2019,请使用FUNCTIONS_EXTENSION_VERSION =〜2
如果使用Visual Studio 2017,则使用FUNCTIONS_EXTENSION_VERSION =〜1