Azure 中的 ConnectionString 没有覆盖 Azure 函数的 LocalSqlServer

Posted

技术标签:

【中文标题】Azure 中的 ConnectionString 没有覆盖 Azure 函数的 LocalSqlServer【英文标题】:ConnectionString in Azure not overriding LocalSqlServer for Azure Function 【发布时间】:2018-09-05 01:17:16 【问题描述】:

我在运行函数应用并记录可用连接字符串的数量时发现了问题。唯一可用的 ConnectionString 是 LocalSqlServer,它似乎是应用程序创建的默认连接字符串。

ConfigurationManager.ConnectionStrings["Name"].ConnectionString;抛出空参考。例外。

ConfigurationManager.ConnectionStrings[0].Name;给出“LocalSqlServer”

LocalSqlServer 连接字符串: 数据源=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;用户实例=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 仍然是一个问题。

【问题讨论】:

...在应用程序中添加到哪里,如何添加? 我指的是 Azure Functions 中的应用程序资源。 How To Access Azure Function App ConnectionString Using dotnet Standard的可能重复 为简单起见,您始终可以将其作为环境变量 - docs.microsoft.com/en-us/azure/app-service/… 【参考方案1】:

我也遇到了同样的问题,但是因为这只是在开发中工作时出现的问题,所以我做了以下帮助方法

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);
        
    
`

我想得到一个合适的解决方案,但我有更紧迫的事情要做~有了这个我可以在 prod 中使用连接字符串,在 dev 中使用环境变量

【讨论】:

以上是关于Azure 中的 ConnectionString 没有覆盖 Azure 函数的 LocalSqlServer的主要内容,如果未能解决你的问题,请参考以下文章

Azure 和 MVC 中的成员角色

Azure 存储队列触发的 Azure 函数

在 ADF 中参数化 Azure Blob 存储链接服务

同一存储的依赖注入多个接口(具有不同的connectionString)

部署到 AWS Elastic Beanstalk 时的 ConnectionString 转换

Azure 功能无法访问 Azure 文件共享