绑定表达式在 Azure 函数 SQL 触发器中不起作用

问题描述 投票:0回答:1

我有一个简单的 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,它就可以工作。所以我想知道为什么当我以编程方式设置相同的值时它不起作用?

c# azure azure-functions azure-sql-database
1个回答
0
投票

在环境变量中设置连接字符串时,您可能需要尝试使用

SQLCONNSTR_
前缀。

所以像这样:

Environment.SetEnvironmentVariable("SQLCONNSTR_SqlConnectionStringSetting","myCS");

AzureFunctions
将使用此前缀将
SQLConnectionStrings
存储在
AppSettings
中,并且我相信触发器正在寻找该值。

我相信您应该能够从您的

ConnectionString
访问
SQLTrigger
。如果这不起作用,您可能还想尝试从
%
行中删除
SQLTrigger
字符。

我相信以前你也可以添加

CONNECTIONSTRINGS:SqlConnectionStringSetting
来使其在不同的环境中工作。

© www.soinside.com 2019 - 2024. All rights reserved.