Azure中的ConnectionString不会覆盖Azure功能的LocalSqlServer

时间:2018-03-26 19:27:44

标签: azure azure-sql-database connection-string app-config azure-functions

当我运行功能应用程序并记录可用的连接线数时,我发现了这个问题。唯一可用的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的问题仍然是一个问题。

1 个答案:

答案 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中使用环境变量