首页 文章

部署后Azure功能无法正常工作

提问于
浏览
1

我正在使用Azure功能进行一些POC . 我已经从VS模板创建了一个简单的HttpTrigger函数,如果我在localhost中的debbug完全正常工作,但是如果我在Azure中部署,当我尝试启动该函数时会出现错误:

发生了错误 . 有关更多信息,请查看日志中的错误ID 24d8e48f-d925-45ad-82cf-f767decc5f6f

如果我签入Insights,错误是:

错误索引方法'Saluda.Run'无法将参数'log'绑定到类型TraceWriter . 确保绑定支持参数Type . 如果您正在使用绑定扩展(例如ServiceBus,Timers等),请确保您已在启动代码中调用扩展的注册方法(例如config.UseServiceBus(),config.UseTimers()等) .

调用堆栈:

Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException:at Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer d__19.MoveNext(Microsoft.Azure.WebJobs.Host,Version = 2.3.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 )System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c5619340089)at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(mscorlib,Version = 4.0.0.0,Culture = neutral) ,PublicKeyToken = b77a5c561934e089)在Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer d__15.MoveNext(Microsoft.Azure.WebJobs.Host,Version = 2.3.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35)内部异常System.InvalidOperationException在Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer d__19.MoveNext:at Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer d__20.MoveNext(Microsoft.Azure.WebJobs.Host,Version = 2.3.0.0,Culture = neutral,PublicKeyToken = 31 bf3856ad364e35)System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c5619340089)at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(mscorlib,Version = 4.0.0.0,Culture =中性,PublicKeyToken = b77a5c561934e089)在Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexer d__19.MoveNext(Microsoft.Azure.WebJobs.Host,Version = 2.3.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35)

我正在使用Microsoft.NET.Sdk.Functions 1.0.14(最后一个),AzureWebJobsDashboard和AzureWebJobsStorage在功能应用程序设置中配置 . 如果我直接在门户中创建一个函数,它就可以工作 .

任何的想法?

非常感谢 .

Function code

Configuration

Insights error

2 回答

  • 2
  • 0

    您已在本地创建了v2函数,但在应用程序设置中我们可以看到 FUNCTIONS_EXTENSION_VERSION (即函数应用程序设置中的运行时版本)为~1,用于v1函数 .

    部署它时,您可能会看到此提示弹出

    enter image description here

    您可能已选择 No 以获得异常 .

    v1函数的目标是.Net框架,v2目标是.Net标准,它们分别具有Runtime~1和beta . 彼此不兼容,因此一个运行时只支持一种功能 . 这就是你得到错误的原因 .

    解决方案:

    • 如果现有的v1函数很有用,则需要创建一个新的函数应用程序 . 将v2功能部署到新功能应用程序,并随意选择 Yes 将运行时更改为beta,因为默认情况下为1 . 您还可以在创建任何功能之前转到功能应用设置以将运行时更改为测试版 .

    • 如果依赖于~1运行时的函数无效,请转到应用程序设置,将 FUNCTIONS_EXTENSION_VERSION 更改为beta,然后删除v1函数,因为它们不再使用 . 这样,您无需删除所有功能以从功能应用程序设置更改运行时并再次部署 .

相关问题