Azure Functions:引用程序集的配置文件

Posted

技术标签:

【中文标题】Azure Functions:引用程序集的配置文件【英文标题】:Azure Functions: Configuration file for referenced assembly 【发布时间】:2018-01-17 08:06:03 【问题描述】:

我们在azure function app 项目中有一个引用的项目。引用的程序集是data service 项目,也被web api 项目引用。

当在 web-api 项目中引用时,data service project 会自动引用 web.config 文件以获取连接字符串和应用设置。在azure functions app 中,data service 项目无法找到存储在local.settings.json 文件中的连接字符串。

    如何在本地解决这个问题? 如何解决生产中的问题?

注意:希望在这里采用 DRY 方法。

【问题讨论】:

如何读取连接字符串? 我目前以 ConfigurationManager.AppSetting("ss1ConnString") 的身份访问应用程序设置 不应该是ConfigurationManager.ConnectionStrings["ss1ConnString"].ConnectionString吗? 是的,没错。它正在与web-api 项目一起使用,但不适用于azure functions app 是的,请发布local.settings.json 文件的内容,因为这应该“正常工作”。请记住ConnectionStrings 应与AppSettings 放在不同的块中。参考这个答案:***.com/a/45555781/352640 【参考方案1】:

正如 Jan V 所说,您可以在 json 文件中添加数据连接字符串。此外,你可以设置一个断点,看看你是否得到'str'值(调试)。

var str = ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString;

local.settings.jons 文件中的代码:

 
  "IsEncrypted": false,
  "Values": 
    "AzureWebJobsStorage": 
   "your storage account connection string",
    "AzureWebJobsDashboard": 
"your storage account connection string"

  ,
  "ConnectionStrings": 
"ConnectionStringName": "Data Source=tcp:database server name,1433;Initial Catalog=database name;Integrated Security=False;User Id=user name;Password= your Password;Encrypt=True;TrustServerCertificate=False;MultipleActiveResultSets=True"  // Refer to Azure portal>SQL database> connection string


有关如何使用 Azure Functions 连接到 Azure SQL 数据库的更多详细信息,您可以阅读此article。

【讨论】:

另加ProviderName

以上是关于Azure Functions:引用程序集的配置文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 .NET Core 3.1 的 Azure Functions 中将 Serilog 配置为默认日志提供程序?

Azure Functions 的 Azure 队列触发器:配置最小轮询间隔

Azure Function v2 引用了 Newtonsoft.Json 版本高于 Microsoft.NET.Sdk.Functions 的项目

Newtonsoft.Json 参考抱怨 Azure Functions

为 Azure Functions 本地主机配置 CORS

如何配置我的 Azure Functions 环境,以便可以在 Python 代码中使用 Cosmos DB 客户端?