我有一个通过队列触发器运行的 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/