Azure functions 函数的侦听器';我的职能';无法在Azure函数中启动错误消息

Azure functions 函数的侦听器';我的职能';无法在Azure函数中启动错误消息,azure-functions,Azure Functions,尝试在我的开发人员计算机上运行Azure函数时,我收到以下错误消息: [12/28/2019 12:06:48 AM] The listener for function 'my-function' was unable to start. [12/28/2019 12:06:48 AM] The listener for function 'my-function' was unable to start. Microsoft.WindowsAzure.Storage: Value canno

尝试在我的开发人员计算机上运行Azure函数时,我收到以下错误消息:

[12/28/2019 12:06:48 AM] The listener for function 'my-function' was unable to start.
[12/28/2019 12:06:48 AM] The listener for function 'my-function' was unable to start. Microsoft.WindowsAzure.Storage: Value cannot be null. (Parameter 'connectionString').
以下是我的local.settings.json文件的内容:

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet"
  }
}
当我删除/重命名local.settings.json文件时,会收到一条完全不同的错误消息,这让我相信它正在识别和读取该文件

我正在使用Azure功能的v3,并且在我的csproj文件中设置了以下功能:

<TargetFramework>netcoreapp3.1</TargetFramework>
<AzureFunctionsVersion>v3</AzureFunctionsVersion>
netcoreapp3.1
v3
我的所有NuGet软件包都运行最新版本:

<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="3.0.10" />
<PackageReference Include="Microsoft.Extensions.Http" Version="3.1.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="3.0.2" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.7.0" />

我尝试了以下我在GitHub中读到的针对Azure函数打开的问题,但都不起作用:

  • 将AzureWebJobsStorage添加为环境变量
  • 添加带有AzureWebJobsStorage密钥的appsettings.json文件
  • 更新:

    是的,如果您使用本地虚拟化存储模拟器,则您的连接字符串是正确的

    如果防火墙限制func访问存储帐户,则可能会报告此错误。防火墙是侦听器无法访问虚拟存储仿真器的原因之一

    尝试禁用防火墙,看看这是否解决了问题

    当然,也可能是存储模拟器服务未打开。尝试键入

    "%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" status
    
    在cmd中检查状态

    如果返回false,请输入以下命令以启动存储仿真器:

    "%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" init
    "%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" start
    
    总而言之:

    这类问题通常有三种可能的原因

    1.连接字符串错误阻止连接

    2.设置了防火墙

    3.某些服务未打开

    除了这三点之外,通过将相同的代码复制到新项目中,似乎还可以解决类似的问题。看一看

    此问题的原因实际上是func侦听器无法侦听存储。解决方法是考虑FUNC不能听存储的原因。可能还有其他情况,但考虑的方向是类似的

    希望能有帮助


    原始答案:

    我使用了与您相同的配置来创建函数,但没有遇到错误,因此我怀疑问题可能来自防火墙和虚拟网络的设置

    侦听器无法访问存储帐户,请尝试在代码中创建动态容器,您应该会遇到访问错误。

    更新:

    是的,如果您使用本地虚拟化存储模拟器,则您的连接字符串是正确的

    如果防火墙限制func访问存储帐户,则可能会报告此错误。防火墙是侦听器无法访问虚拟存储仿真器的原因之一

    尝试禁用防火墙,看看这是否解决了问题

    当然,也可能是存储模拟器服务未打开。尝试键入

    "%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" status
    
    在cmd中检查状态

    如果返回false,请输入以下命令以启动存储仿真器:

    "%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" init
    "%programfiles(x86)%\Microsoft SDKs\Azure\Storage Emulator\AzureStorageEmulator.exe" start
    
    总而言之:

    这类问题通常有三种可能的原因

    1.连接字符串错误阻止连接

    2.设置了防火墙

    3.某些服务未打开

    除了这三点之外,通过将相同的代码复制到新项目中,似乎还可以解决类似的问题。看一看

    此问题的原因实际上是func侦听器无法侦听存储。解决方法是考虑FUNC不能听存储的原因。可能还有其他情况,但考虑的方向是类似的

    希望能有帮助


    原始答案:

    我使用了与您相同的配置来创建函数,但没有遇到错误,因此我怀疑问题可能来自防火墙和虚拟网络的设置


    侦听器无法访问存储帐户,请尝试在代码中创建动态容器,您应该会遇到访问错误。

    Hi Mike,您是否在本地运行了函数success?请你提供你的功能代码,然后我可以帮你测试。嗨,迈克。现在还不能启动侦听器吗?@BowmanZhu我将所有更改恢复到上次已知的工作状态,并逐一重新制作更改,以确定问题的原因。我能够在第二次应用所有更改,没有任何问题,所以我不完全确定发生了什么。谢谢你的帮助。嗨,迈克,你在本地成功运行了这个功能吗?请你提供你的功能代码,然后我可以帮你测试。嗨,迈克。现在还不能启动侦听器吗?@BowmanZhu我将所有更改恢复到上次已知的工作状态,并逐一重新制作更改,以确定问题的原因。我能够在第二次应用所有更改,没有任何问题,所以我不完全确定发生了什么。谢谢你的帮助。我正在本地运行它,连接字符串是
    UseDevelopmentStorage=true
    。防火墙或虚拟网络是如何发挥作用的?(我是Azure函数的noob,所以我肯定我忽略了一些东西)@MikeCole在本地运行函数时,除了httptrigger之外的所有触发器都需要使用存储模拟器。如果防火墙限制侦听器对虚拟存储的访问,则在执行该函数时会出现问题。看看我的更新答案。我正在本地运行它,连接字符串为
    UseDevelopmentStorage=true
    。防火墙或虚拟网络是如何发挥作用的?(我是Azure函数的noob,所以我肯定我忽略了一些东西)@MikeCole在本地运行函数时,除了httptrigger之外,所有触发器都需要使用存储