函数“FunctionName”的侦听器无法在 .net core azure 中启动
Posted
技术标签:
【中文标题】函数“FunctionName”的侦听器无法在 .net core azure 中启动【英文标题】:The listener for function 'FunctionName' was unable to start in .net core azure 【发布时间】:2021-11-30 16:41:30 【问题描述】:该应用程序使用模拟器在我的本地完美运行。但是当我部署到 azure 进行测试时,我在日志中收到了这个错误。我只有一个时间触发功能。
[10/12/2021 02:32:22 > 79e06d: INFO] 函数“DoWork”的侦听器无法启动。 [10/12/2021 02:32:22 > 79e06d:INFO] Microsoft.Azure.WebJobs.Host.Listeners.FunctionListenerException:函数“DoWork”的侦听器无法启动。 [10/12/2021 02:32:22 > 79e06d:INFO] ---> System.Threading.Tasks.TaskCanceledException:任务已取消。 [10/12/2021 02:32:22 > 79e06d: INFO] 在 Microsoft.Azure.Storage.Core.Executor.Executor.ExecuteAsync[T](RESTCommand`1 cmd、IRetryPolicy 策略、OperationContext operationContext、CancellationToken 令牌)
我的应用设置中有这些
"AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet",
【问题讨论】:
它不起作用,因为您不能在 Azure 中使用UseDevelopmentStorage=true
。您应该创建一个存储帐户并使用它。
【参考方案1】:
如果您使用本地虚拟化存储模拟器,那么您的连接字符串是正确的。
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
如果您的防火墙限制功能访问存储帐户,则可能会报告此错误。 防火墙是监听器无法访问虚拟存储模拟器的原因之一。
在本地运行函数时,除http trigger外的所有trigger都需要使用Storage Emulator。 如果防火墙限制侦听器对虚拟存储的访问,则在执行功能时可能会出现问题。这就是为什么使用 http 触发器不会出错的原因,因为它不使用虚拟存储模拟器。
尝试禁用防火墙,看看是否可以解决问题,尝试在cmd中使用以下语句检查状态
"%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" status
如果返回false,输入以下命令启动Storage Emulator:
"%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" init
"%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" start
这类问题一般有三个原因。
-
连接字符串错误阻止连接,
防火墙已设置
某些服务未打开。
尝试将相同的代码复制到其他位置。
安装并运行 Azure 存储模拟器 5.2 或更高版本。 使用真实的 Azure 存储连接字符串更新 local.appsettings.json 文件。
"AzureWebJobsStorage": "copy the string in the config function on azure",
【讨论】:
以上是关于函数“FunctionName”的侦听器无法在 .net core azure 中启动的主要内容,如果未能解决你的问题,请参考以下文章
js中 var functionName = function() {} 和 function functionName() {} 两种函数声明的区别
尝试在不指定返回参数的情况下调用存储的函数“dbname”。“functionname”
JavaScript中的var functionName = function() vs function functionName()
Laravel 8 Custom Helper function PHP致命错误:无法重新声明以前在C:(path)Helpers.php中声明的functionName() [重复]