Azure 函数 - ConnectionString 属性 尚未初始化
Azure Function - The ConnectionString property has not been initialized
我在 Visual Studio 中开发了一个 Azure Function,当它在 Azure 中发布时(从一年前开始)就可以使用。
现在我从 Visual Studio 中的那个 Azure 函数制作了一个模板,我更改了一些细节,但它主要是相同的。当我在本地测试时,它工作正常。
但是当我在 Azure 中发布它并尝试对其进行测试时,我得到了这个错误:
The ConnectionString property has not been initialized
我通常在应用程序设置中编写连接字符串(它适用于较旧的 Azure 功能)。
函数获取连接字符串值的方式如下:
var repo = new GranularRepository(ConfigurationManager.AppSettings["BoConnectionString"]);
我也试过:
var repo = new AvgDeliveryTime_GranularRepository(Environment.GetEnvironmentVariable("BodbConnectionString"));
根据你的描述,我无法区分你的函数运行时间。
对于 v1:
您可以同时使用 ConfigurationManager.AppSettings
和 System.Environment.GetEnvironmentVariable
来获取 Azure 中的连接字符串。
var a = ConfigurationManager.AppSettings["BoConnectionString"];
var b = System.Environment.GetEnvironmentVariable("BoConnectionString");
对于 v2:
您可以使用 System.Environment.GetEnvironmentVariable
和 ConfigurationBuilder
来获取它。添加ExecutionContext
参数,用于定位函数应用目录。
var a= System.Environment.GetEnvironmentVariable("BoConnectionString");
/////////////
public static void Run(...,ExecutionContext context)
{
var config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
// Get Connection strings
var connParameter= "MySqlAzureConnection";
string connectionString = config.GetConnectionString($"{connParameter}");
}
v1 和 v2 都在应用程序设置中设置连接字符串。
更多细节,你可以参考这个。
我通过创建一个新的 Azure Functions 项目修复了它。
所以我的结论是,从另一个 Azure 函数制作一个 模板 并将其用作 Visual Studio 中的新项目会产生问题。
我在 Visual Studio 中开发了一个 Azure Function,当它在 Azure 中发布时(从一年前开始)就可以使用。
现在我从 Visual Studio 中的那个 Azure 函数制作了一个模板,我更改了一些细节,但它主要是相同的。当我在本地测试时,它工作正常。
但是当我在 Azure 中发布它并尝试对其进行测试时,我得到了这个错误:
The ConnectionString property has not been initialized
我通常在应用程序设置中编写连接字符串(它适用于较旧的 Azure 功能)。
函数获取连接字符串值的方式如下:
var repo = new GranularRepository(ConfigurationManager.AppSettings["BoConnectionString"]);
我也试过:
var repo = new AvgDeliveryTime_GranularRepository(Environment.GetEnvironmentVariable("BodbConnectionString"));
根据你的描述,我无法区分你的函数运行时间。
对于 v1:
您可以同时使用 ConfigurationManager.AppSettings
和 System.Environment.GetEnvironmentVariable
来获取 Azure 中的连接字符串。
var a = ConfigurationManager.AppSettings["BoConnectionString"];
var b = System.Environment.GetEnvironmentVariable("BoConnectionString");
对于 v2:
您可以使用 System.Environment.GetEnvironmentVariable
和 ConfigurationBuilder
来获取它。添加ExecutionContext
参数,用于定位函数应用目录。
var a= System.Environment.GetEnvironmentVariable("BoConnectionString");
/////////////
public static void Run(...,ExecutionContext context)
{
var config = new ConfigurationBuilder()
.SetBasePath(context.FunctionAppDirectory)
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
// Get Connection strings
var connParameter= "MySqlAzureConnection";
string connectionString = config.GetConnectionString($"{connParameter}");
}
v1 和 v2 都在应用程序设置中设置连接字符串。
更多细节,你可以参考这个
我通过创建一个新的 Azure Functions 项目修复了它。
所以我的结论是,从另一个 Azure 函数制作一个 模板 并将其用作 Visual Studio 中的新项目会产生问题。