具有blobtriggered功能的全新JavaScript FunctionApp崩溃,错误500:
描述:由于未处理的异常,进程终止。异常信息:Microsoft.WindowsAzure.Storage.StorageException:指定的资源名称包含无效字符。 Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueListener.ExecuteAsync(CancellationToken)上的Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteAsyncInternal [T](RESTCommand`1 cmd,IRetryPolicy策略,OperationContext operationContext,CancellationToken令牌)在C:\ projects \ azure-webjobs-sdk-rqm4t \ src \ Microsoft.Azure.WebJobs.Extensions.Storage \ Queues \ Listeners \ QueueListener.cs中的cancellationToken:在Microsoft.Azure.WebJobs.Host.Timers.TaskSeriesTimer的第155行.RunAsync(CancellationToken cancellationToken)位于C:\ projects \ azure-webjobs-sdk-rqm4t \ src \ Microsoft.Azure.WebJobs.Host \ Timers \ TaskSeriesTimer.cs:第147行,位于Microsoft.Azure.WebJobs.Host.Timers.WebJobsExceptionHandler 。<> c__DisplayClass3_0。<OnUnhandledExceptionAsync> b__0()位于C:\ projects \ azure-webjobs-sdk-rqm4t \ src \ Microsoft.Azure.WebJobs.Host \ Timers \ WebJobsExceptionHandler.cs:System.Threading.Thread中的第54行。 System.Threadin的System.Threading.ThreadHelper.ThreadStart_Context(Object state)中的ThreadMain_ThreadStart() g.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback callback,Object state)---从抛出异常的上一个位置开始的堆栈跟踪---在System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback callback,Object state)在System.Threading.ThreadHelper.ThreadStart()
步骤:我创建了一个新的FunctionApp:
接下来,我导航到FunctionApp并创建了一个新函数:
接下来,我在存储上创建了容器“samples-workitems”,并在其中放入一个文件来触发该函数,并从函数日志中获取错误消息。
我还尝试从门户右侧面板中使用值samples-workitems / {我复制的文件}“测试”该函数,我得到了500错误和前一条消息。
通过回到门户网站中的功能应用程序,我注意到了一些奇怪的事情:
Azure存储扩展似乎已正确安装但如果我尝试添加新的blob触发功能,它再次要求我安装存储扩展...所以我想它永远不会成功安装扩展并且无法做到。
编辑:原来Azure现在承认扩展已安装,但我仍然有StorageException
您可以从Kudu检查扩展是否成功安装。打开DebugConsole - >转到D:\ home \ site \ wwwroot \ bin。 Microsoft.Azure.WebJobs.Extensions.Storage.dll。如果存储dll不存在,则扩展安装不成功。
您可以选择重新安装所需的扩展程序。你可以参考这个wiki:Update your app from portal。
编辑extensions.csproj
文件,在PackageReference
中对ItemGroup
项目进行必要的添加和更新,然后选择Save。关于支持的软件包版本可以在What NuGet packages do i need?中找到。
然后在wwwroot
文件夹中运行以下命令来构建引用的程序集。
dotnet build extensions.csproj -o bin --no-incremental --packages D:\home\.nuget