我们正在尝试从 Azure Web App 获取连接字符串以与我们的 ASP.net 网站配合使用。
我们已在 Azure Web App 中正确配置了连接字符串:
但是,当我们访问 Kudu 环境页面时,它显示了完全错误的连接字符串,无法弄清楚为什么它没有显示我们的自定义连接字符串。
此外 - 我们使用自定义连接字符串,因为我们有一个特殊的连接器 (Devart Mysql),我们需要提供程序名称保持正确。
我想知道 azure web 应用程序是否会覆盖我们的提供程序并将其重置为 Sql Server 提供程序,而不是我们需要使用的 Devart.MySql 提供程序。感谢任何帮助/指导
更新
使用 kudu 检查 web.config,发现 azure 会自动将提供程序名称更改为 System.Data.Entityclient - 我们如何防止这种情况发生?我相信这就是问题的根源
此外 - 我们正在使用准系统项目来以最低限度进行测试,因此我们知道项目中没有其他因素操纵这些值,非常肯定 azure Web 应用程序正在进行此更改,只是没有确定如何修复它
最佳答案
对于 ASP.NET 等 .NET 应用程序,这些连接字符串会在运行时注入(inject)到 .NET 配置 connectionStrings 设置中,覆盖键等于链接数据库名称的现有条目。
这些设置也可以在运行时作为环境变量使用,并以连接类型为前缀。 environment variable前缀如下:
SQL Server: SQLCONNSTR_
MySQL: MYSQLCONNSTR_
SQL Database: SQLAZURECONNSTR_
Custom: CUSTOMCONNSTR_
您可以使用 ConfigurationManager.ConnectionStrings["keyname"]; 检索应用程序中的设置。
。
因此,在web.config
中将connectionString
设置为空,并且将自动使用应用程序设置的connectionString
。更多详情可以引用这个tutorial .
关于c# - Azure Web 应用程序未在 Kudu 环境中显示连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59885858/