Azure 函数在 Linux 上出现“监听器无法启动”错误

Ste*_* B. 4 .net c# linux azure azure-functions

我使用的是 Ubuntu Linux,当我尝试运行 .Net core 2.2 Azure 函数应用程序时遇到问题。快速谷歌搜索表明它可能与存储有关,但都不清楚。

尽管运行时似乎开始正常运行,但一段时间后我收到此错误:

[6/4/2020 8:35:09 am] The listener for function 'FunctionName' was unable to start.
[6/4/2020 8:35:09 am] The listener for function 'FunctionName' was unable to start. Microsoft.Azure.Storage.Common: Connection refused. System.Net.Http: Connection refused. System.Private.CoreLib: Connection refused.
Run Code Online (Sandbox Code Playgroud)

Ste*_* B. 6

所以我发现了问题所在。我尝试在 Windows 分区上运行我的 azure 函数,但遇到了类似的错误。事实证明,这两种情况都是 Azure 存储模拟器的问题。

要在 Windows 中修复它,我必须:

  • 删除 /%USERPROFILE% 中的所有“AzureEmulatorDb”实例
  • 然后我必须运行“SqlLocalDb i”来查找所有当前正在运行的本地数据库并使用“SqlLocalDb delete”删除它们
  • 最后,我必须进入 SDK 文件夹并运行“./AzureStorageEmulator.exe init -forcecreate”来重新创建 azureEmulatorDb 并初始化模拟器的新配置

Linux 中的修复实际上更容易:

  • 我下载了 Azurite,它是一个开源 Azure 存储模拟器 ( https://github.com/azure/azurite )
  • 然后,在启动我的 azure 函数之前,我只需使用“azurite”命令运行它