4

我有一个旧的 Azure Functions 项目 (v3)。它包含几个定时器触发功能。他们停止了 VS2022 的工作。您可以在下面查看日志。如果我通过 VS2022 创建一个新的 Functions 项目,它将正常工作。看起来蓝晶石也可以正常启动。设置“AzureWebJobsStorage”等于“UseDevelopmentStorage=true”。我能做些什么?

[2022-01-06T10:17:15.675Z] Host lock lease acquired by instance ID '000000000000000000000000DC2A3C3E'.
[2022-01-06T10:17:35.554Z] The listener for function 'Function1' was unable to start.
[2022-01-06T10:17:35.556Z] The listener for function 'Function1' was unable to start. Azure.Storage.Blobs: Service request failed.
[2022-01-06T10:17:35.557Z] Status: 500 (Internal Server Error)
[2022-01-06T10:17:35.557Z]
[2022-01-06T10:17:35.558Z] Headers:
[2022-01-06T10:17:35.559Z] Server: Azurite-Blob/3.14.1
[2022-01-06T10:17:35.560Z] ETag: "0x234B8B049DD4280"
[2022-01-06T10:17:35.561Z] x-ms-blob-type: BlockBlob
[2022-01-06T10:17:35.562Z] x-ms-lease-state: available
[2022-01-06T10:17:35.562Z] x-ms-lease-status: unlocked
[2022-01-06T10:17:35.563Z] x-ms-client-request-id: a3bc0141-7bcb-420c-84a9-eadf86f8c685
[2022-01-06T10:17:35.564Z] x-ms-request-id: 88474d4b-bc15-4f45-95d5-0a01682d883d
[2022-01-06T10:17:35.565Z] x-ms-version: 2020-10-02
[2022-01-06T10:17:35.566Z] Accept-Ranges: bytes
[2022-01-06T10:17:35.566Z] Date: Thu, 06 Jan 2022 10:17:35 GMT
[2022-01-06T10:17:35.567Z] x-ms-server-encrypted: true
[2022-01-06T10:17:35.570Z] x-ms-blob-content-md5: jhxvLoUrRfc2dXn/gXokig==
[2022-01-06T10:17:35.570Z] Connection: keep-alive
[2022-01-06T10:17:35.571Z] Keep-Alive: REDACTED
[2022-01-06T10:17:35.572Z] Last-Modified: Tue, 28 Dec 2021 11:10:44 GMT
[2022-01-06T10:17:35.573Z] Content-Length: 115
[2022-01-06T10:17:35.574Z] Content-Type: application/octet-stream
[2022-01-06T10:17:35.574Z] Content-MD5: jhxvLoUrRfc2dXn/gXokig==

更新
我在同一个项目中添加了一些新功能。他们工作正常。我更改了函数和方法名称,旧函数也开始工作。看起来它缓存了某处的名称。我尝试了干净的重建,但没有帮助。我不知道为什么它不适用于旧名称。

4

2 回答 2

7

我能够通过使用 Azure 存储资源管理器并删除本地存储 blob 容器中 azure-webjobs-hosts 下的相关 blob 文件夹来解决此问题

根文件夹位于: Local & Attached > Storage Accounts > (Emulator - Default Ports) > Blob Containers -> azure-webjobs-hosts

确保项目已打开,否则存储资源管理器可能无法加载容器。

删除后,问题功能开始按预期运行

在此处输入图像描述

于 2022-01-12T21:22:56.907 回答
0
  1. Visual Studio 2019中创建了Azure Functions v3 项目以及项目的 azurite 扩展并在本地运行:

    在此处输入图像描述

  2. 在VS 2022中打开相同的代码并在本地运行该函数:

    在此处输入图像描述

Microsoft 文档中所述,Azurite 自动随VS 2022提供。

现在在 VS 2022 中打开 Azure Functions v3 项目(之前在 VS 2019 中创建)时,它可能会在加载依赖项后在输出对话框中显示以下消息:

在此处输入图像描述

尽管如此,在 Windows 中运行任何 azure functions 项目都需要Azure Storage Emulator,它需要安装在系统中。

确保已安装 Azure 存储模拟器,并且 azurite 是 VS 2022 中包含的未来存储模拟器平台。如果您使用的是早期的 Visual Studio,则需要使用节点包管理器、DockerHub 或克隆来安装 Azurite以下文档中给出的 Azurite github 存储库。

于 2022-01-06T12:33:27.797 回答