我创建了应该连接到Azure SQL数据库的Azure函数。
此函数检索保存在应用程序配置中的连接字符串。此连接字符串是Azure SQL提供的。
一切都可以在我的PC上正常运行,但是我已经在Azure上部署了该功能,但似乎无法连接到SQL数据库(返回常见错误“未设置对象引用...”。)
我已经在Azure函数资源中检查了possibleOutboundIpAddresses
,并允许它们在Azure SQL防火墙上使用。
此外,我的SQL数据库位于具有存储的Azure VNet中。
有什么主意吗?
答案 0 :(得分:4)
您可能应该将所需的连接字符串添加到功能的 App Settings 中,而不是配置文件中。除非您明确添加配置文件使其成为使用ConfigurationBuilder
查找设置的位置之一,否则默认情况下将不将其选中。
更多信息:Azure Functions C# developer reference
在本地开发和在Azure中运行时,都可以从环境变量中读取应用程序设置。在本地进行开发时,应用设置来自 local.settings.json 文件中的
Values
集合。在本地和Azure两种环境中,GetEnvironmentVariable("<app setting name>")
检索命名的应用程序设置的值。例如,当您在本地运行时,如果您的 local.settings.json 文件包含{ "Values": { "WEBSITE_SITE_NAME": "My Site Name" } }
,则会返回“我的网站名称”。
答案 1 :(得分:0)
有一个类似的线程here
在功能运行时v2中,应使用Environment.GetEnvironmentVariable("string_name",EnvironmentVariableTarget.Process)
从应用程序设置和连接字符串中获取值。
也许这也适用于您的设置。