如何在Azure App Service的React应用中配置连接字符串?
问题
我已将React应用部署至Azure App Service,本地开发环境中,我在appsettings.Development.json里配置了如下内容:
"ConnectionStrings": { "setting": "<connectionstring_details>", },
该配置需要在Azure应用中设置。我已进入应用的「环境变量」→「连接字符串」中添加名为“setting”的配置并填入connectionstring_details值,但未生效。若让应用从appsettings.json(而非appsettings.Development.json,因为是发布模式)中读取值则可正常工作。我在代码中通过以下方式获取该值:
public HomeController(IConfiguration configuration) { MyValue = configuration.GetConnectionString("setting"); }
请问该如何设置这个值?是否只需在环境变量而非连接字符串中配置?
解决方案
- 问题根源:Azure App Service的「连接字符串」板块会根据你选择的类型(比如SQL Server、MySQL)自动给键名添加前缀,比如SQL Server类型会生成
SQLCONNSTR_setting,这和代码中GetConnectionString("setting")要读取的键名不匹配,导致无法获取值。 - 两种有效解决方式:
- 用应用程序设置配置:进入Azure App Service的「环境变量」→「应用程序设置」,添加新配置项,键名填
ConnectionStrings:setting,值填入你的连接字符串内容。IConfiguration会自动识别这个层级结构,GetConnectionString("setting")就能正常读取。 - 选择自定义连接字符串类型:如果要继续用「连接字符串」板块配置,添加时将类型选择为自定义(Custom),Azure不会给键名添加前缀,
GetConnectionString("setting")就能匹配到你设置的键名。
- 用应用程序设置配置:进入Azure App Service的「环境变量」→「应用程序设置」,添加新配置项,键名填
内容的提问来源于stack exchange,提问作者Clarisa
相关产品推荐
相关产品推荐

