c# - 部署的应用程序函数有空的 host.json 并且没有主机密钥
问题描述
我的 Azure App Function 出现了一个奇怪的问题,我在这方面找不到任何东西。
我在不更改代码的情况下重新发布了我的函数,但突然该函数停止工作,并且在我导航到 Azure 上的函数页面后立即收到此消息:
错误:
检索主密钥时出错。
如果我导航到函数的设置,我可以看到没有生成任何键并且该host.json
文件是空的。但是,使用 Kudu 浏览我的函数文件表明文件内容是正确的。
还有两件事让这更奇怪:
- 该功能在本地正常工作
- 如果我将代码用于另一个函数并将其部署在这个函数上,我的函数可以正常工作,这意味着这不是与我的函数配置相关的问题,而是与它的代码相关的问题
各位大侠有这方面的指点吗?
编辑:
让我添加更多细节。
假设我有 2 个解决方案,A.sln
并且B.sln
. 我在 Azure 上也有 2 个 App Functions,比如说F_1
和F_2
.
A.sln
并且B.sln
具有完全相同的结构,唯一的区别在于业务逻辑。同样适用于F_1
和F_2
,它们唯一的区别是相关的存储帐户,因为每个功能都有自己的。
目前正在不断地A.sln
部署,F_1
并且唯一的工作是. 如果我在 上部署,则开始工作,所以我的想法是' 代码中存在问题,因为使用相同的配置。B.sln
F_2
F_1
A.sln
F_2
F_2
B.sln
A.sln
解决方案
Function App 在应用程序设置中有对存储帐户的引用AzureWebJobsDashboard
,AzureWebJobsStorage
并且WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
(如果您正在使用消费计划)。清除此存储或简单地重新创建它可以解决问题。
我还建议为每个 Function 应用程序创建单独的存储帐户 - 至少只要存在这些难以发现的错误。当此类问题仅影响单个 Function 应用程序时,修复此类问题要容易得多。
推荐阅读
- ios - Xcode Beta 6 中的 SwiftUI 模式?
- sockets - ksoftirq 在我的 netdata 警报上用完了 sysctl 和 tcp 接受队列丢弃
- c++ - unique_ptr 的有状态自定义删除器
- c# - 使用“浮点数”绘制图像
- memory - 什么会导致 GOTO 指令出现分段错误?
- node.js - async.mapLimit 与 Promise
- ssl - 如何使用 OpenSSL 验证证书
- laravel - 未找到 Google 电子表格 API 错误请求的实体
- python - 按索引覆盖列表切片中的值
- html - 如何将图像源绑定到 ngFor 循环内的可观察对象?