我有一个简单的 SqlTrigger Azure 函数。我试图通过代码动态设置
ConnectionStringSetting
属性,但它不起作用,并且该函数抛出以下异常:-
Microsoft.Azure.WebJobs.Extensions.Sql:ConnectionStringSetting 您的函数应用设置中缺少“SqlConnectionStringSetting”, 请使用有效的 SQL 连接字符串添加设置。
我正在
Program.cs
文件中设置环境变量:-
Environment.SetEnvironmentVariable("SqlConnectionStringSetting","myCS");
并在触发器中使用相同的内容,如下所示:-
public async Task Run(
[SqlTrigger("[dbo].[ToDo]", "%SqlConnectionStringSetting%")]
奇怪的是,如果我只是将设置添加到
local.settings.json
文件中作为环境变量而不是 ConnectionString,它就可以工作。所以我想知道为什么当我以编程方式设置相同的值时它不起作用?
在环境变量中设置连接字符串时,您可能需要尝试使用
SQLCONNSTR_
前缀。
所以像这样:
Environment.SetEnvironmentVariable("SQLCONNSTR_SqlConnectionStringSetting","myCS");
AzureFunctions
将使用此前缀将 SQLConnectionStrings
存储在 AppSettings
中,并且我相信触发器正在寻找该值。
我相信您应该能够从您的
ConnectionString
访问 SQLTrigger
。如果这不起作用,您可能还想尝试从 %
行中删除 SQLTrigger
字符。
我相信以前你也可以添加
CONNECTIONSTRINGS:SqlConnectionStringSetting
来使其在不同的环境中工作。