当我运行功能应用程序并记录可用的连接线数时,我发现了这个问题。唯一可用的ConnectionString是LocalSqlServer,它似乎是应用程序创建的默认连接字符串。
ConfigurationManager.ConnectionStrings [ “名称”]的ConnectionString。抛出null ref。异常。
ConfigurationManager.ConnectionStrings [0]请将.Name;给出“LocalSqlServer”
LocalSqlServer ConnectionString: data source =。\ SQLEXPRESS; Integrated Security = SSPI; AttachDBFilename = | DataDirectory | aspnetdb.mdf; User Instance = true
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AzureFunctionsVersion>v2</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.10" />
<PackageReference Include="System.Configuration.ConfigurationManager" Version="4.4.1" />
<PackageReference Include="System.Linq" Version="4.3.0" />
</ItemGroup>
我的问题是如何覆盖或禁用LocalSqlServer以进行默认数据库连接,并允许在应用程序中添加的当前ConnectionString在运行应用程序时显示?
编辑: 我能够使用环境变量但是使用Azure的ConnectionStrings的问题仍然是一个问题。
答案 0 :(得分:0)
我遇到了同样的问题,但是当在开发人员中工作时,这只是一个问题,因此我制定了以下帮助方法
public static class AzureConfigHelper
{
public static string GetConnectionString(string key)
{
// try connection strings first
if (ConfigurationManager.ConnectionStrings[key] != null)
{
return ConfigurationManager.ConnectionStrings[key].ConnectionString;
}
else
{
// If can't locate config in connection strings try environment variables
return Environment.GetEnvironmentVariable(key);
}
}
}`
Id想获得适当的解决方案,但是我有更多紧迫的事情要解决,为此,我可以在prod中使用连接字符串,在dev中使用环境变量