【发布时间】:2019-03-29 06:21:38
【问题描述】:
我在 Azure 中创建了一个 HTTP 触发器函数,希望从 Azure SQL 数据库中读取数据。我在 Function App 的 Connection Strings 部分配置了连接字符串,如下图所示
我使用下面的代码尝试读取连接字符串。
var cnnString = ConfigurationManager.ConnectionStrings["TempleDataContext"].ConnectionString;
在执行时,我在日志中看到以下错误。
2018-10-24T18:13:56.385 [信息] 函数“donors1”的脚本 改变了。重新加载。 2018-10-24T18:13:56.601 [信息] 编译 成功了。 2018-10-24T18:13:58.511 [信息] 执行 'Functions.donors1' (Reason='这个函数被程序调用 通过主机 API。',Id=8b140087-4b50-450e-829c-f7abd9e3a1eb) 2018-10-24T18:13:59.067 [信息] C# HTTP 触发函数 处理了一个请求。 2018-10-24T18:13:59.245 [错误]已执行 “Functions.donors1”(失败,ID=8b140087-4b50-450e-829c-f7abd9e3a1eb) 对象引用未设置为对象的实例。
我想测试 ConnectionStrings 对象返回的所有内容并将代码更改为
var cnnStrings = ConfigurationManager.ConnectionStrings;
foreach(var c in cnnStrings)
{
log.LogInformation(c.ToString());
}
当我检查日志时,这是我看到的信息。
2018-10-24T18:16:53.755 [信息] 函数“donors1”的脚本 改变了。重新加载。 2018-10-24T18:16:54.540 [信息] 编译 成功了。 2018-10-24T18:16:55.917 [信息] 执行 'Functions.donors1' (Reason='这个函数被程序调用 通过主机 API。', Id=508c49bf-d5e6-4a99-b1db-e1a79545fa91) 2018-10-24T18:16:56.063 [信息] C# HTTP 触发函数 处理了一个请求。 2018-10-24T18:16:56.070 [信息] 数据 源=.\SQLEXPRESS;集成 Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;用户 Instance=true 2018-10-24T18:16:56.079 [信息] 已执行 'Functions.donors1'(成功, id=508c49bf-d5e6-4a99-b1db-e1a79545fa91)
我对它从哪里获取 ConnectionString 信息感到困惑。
只是为了测试一个理论,我还添加了几行来读取应用设置
var appSettings = ConfigurationManager.AppSettings;
foreach(var a in appSettings)
{
log.LogInformation(a.ToString());
}
它没有向我显示这些行的任何信息。
我正在使用 C# 脚本直接在门户中编写 Azure Functions。我错过了什么吗?任何帮助将不胜感激。
【问题讨论】:
标签: c# azure azure-functions