我在 Azure 中创建了一个 HTTP 触发器函数,希望从 Azure SQL 数据库读取数据。我在函数应用程序的连接字符串部分配置了连接字符串,如下图所示
我使用下面的代码尝试读取连接字符串。
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'(原因='此函数以编程方式调用
通过主机 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'(原因='此函数以编程方式调用
通过主机 API。', Id=508c49bf-d5e6-4a99-b1db-e1a79545fa91)
2018-10-24T18:16:56.063 [资料] C# HTTP 触发函数
处理了一个请求。 2018-10-24T18:16:56.070 [资讯] 数据
源=.\SQLEXPRESS;集成
安全=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;用户
Instance=true 2018-10-24T18:16:56.079 [信息] 已执行
'Functions.donors1'(成功,
ID=508c49bf-d5e6-4a99-b1db-e1a79545fa91)
我很困惑它从哪里获取 ConnectionString 信息。
只是为了测试一个理论,IS 还添加了几行来读取应用程序设置
var appSettings = ConfigurationManager.AppSettings;
foreach(var a in appSettings)
{
log.LogInformation(a.ToString());
}
它没有向我显示这些线路的任何信息。
我正在使用 C# 脚本直接在门户中编写 Azure Functions。我错过了什么吗?任何帮助将不胜感激。