azure - 我的 Azure 函数间歇性无法读取连接字符串

标签 azure azure-functions azure-functions-runtime

我有一个通过队列触发器运行的 azure 函数。存储库具有从 ConnectionStrings 集合中获取连接字符串的方法。

return System.Configuration.ConfigurationManager.ConnectionStrings["MyDataBase"].ToString();

这在大多数情况下都非常有效,但我间歇性地看到这会返回空异常错误。
有什么办法可以让它变得更强大吗? azure函数有时无法获取设置吗? 我应该将设置存储在不同的部分吗? 我还想说,这个程序每天运行数千次,但我看到这个弹出窗口大约有 100 次。 运行时版本:1.0.12299.0

最佳答案

您是否正在阅读每个函数调用的配置?您应该考虑阅读一次(例如使用 Lazy<string>static )并将其重用于所有函数调用。

当多个线程访问代码时,可能存在并发问题。放置 lock围绕代码也有帮助。 ConfigurationManager.ConnectionStrings应该是踩踏安全的,但也许它不在 V1 运行时中。

发布了类似的问题 here ,但这涉及应用程序设置而不是连接字符串。我认为使用 CloudConfigurationManager 不应该是正确的解决方案。

您还可以尝试将连接字符串放入应用设置中,除非您使用的是 Entity Framework 。

Connection strings should only be used with a function app if you are using entity framework. For other scenarios use App Settings. Click to learn more. (via Azure Portal)

不确定这是否也适用于 V1 运行时。

关于azure - 我的 Azure 函数间歇性无法读取连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54959330/

相关文章:

c# - 持久保存到 Azure 表存储时使用 POCO

wcf - 如何让 Azure 计算模拟器在 32 位模式下运行?

azure - 最简单的 Service Fabric 可靠集合(字典)示例

azure - 如何在azure发布管道上创建自定义参数

azure - 将 Azure 函数发布到 Azure 随机失败

c# - 在我的 MVS Web 应用程序中为 Azure EventGrid Webhook 设置 HTTP 终结点?

azure-functions - 本地 Azure Functions 触发器计时器触发器

azure - 如何识别azure函数执行是否是重试?

azure - 如何基于函数槽调用Azure Functions

javascript - Azure 函数未在本地触发