为了账号安全,请及时绑定邮箱和手机立即绑定

Azure 无法访问存储在应用服务配置中的连接字符串

Azure 无法访问存储在应用服务配置中的连接字符串

C#
杨魅力 2023-09-16 16:15:20
我在 Azure 中有一个应用程序服务,作为我正在设计的系统的 API 运行。由于 API 负责直接访问数据库,因此我显然不想在源代码中存储连接字符串,因此将其存储在 Azure 仪表板上应用服务配置中的连接字符串部分中。我的代码几乎是这个>> https://github.com/medhatelmasry/JwtAuthentication/blob/master/JwtAuthentication/Startup.cs的抄本,除了我检查了它运行的当前配置(调试、发布)等),这样当我在 Visual Studio 中进行本地调试时,我使用的是 localdb 连接(硬编码)。我有一个 appsettings.json 文件,但其中没有连接字符串,只有 JWT 身份验证和日志记录的设置。当这个被调用时:services.AddDbContext<ApplicationDbContext>(             option => option.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));我在 Azure 中得到以下信息:Unhandled Exception: System.ArgumentNullException: Value cannot be null Parameter name: connectionString在过去的一周里,我一直在愚蠢地工作,试图让这个工作正常进行,但我一直在兜圈子,我快把自己逼疯了。Google 和 StackOverflow 的结果好坏参半,因为多年来不同版本的 Azure 和 ASP.NET Core 给出了不同的答案。就像它根本无法访问 Azure 配置一样。请参阅上面的链接,因为这与我的设置相同,并且基于 .NET 版本和类型(核心或框架)有许多不同的答案。编辑:请阅读我的问题,连接字符串不存储在项目的 appsettings.json 文件中,它存储在 Azure 中,如下所示(我已将连接字符串名称清空,但它们确实与代码中的内容匹配,不,它是不是“默认连接”):
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

确保变量的命名有效。您可以在“应用服务”边栏选项卡中的“开发工具”->“高级工具”中从 SCM 站点查看实际的环境变量。

通过应用服务的门户配置部分添加的名称为“DefaultConnection”的连接字符串在环境变量中将类似于 SQLCONNSTR_DefaultConnection。要在代码中访问它,你可以这样做configuration.GetConnectionString("DefaultConnection")

查看完整回答
反对 回复 2023-09-16
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

我知道它很旧,但可能对将来的人有用。我的问题是由于 AppService“连接字符串”中的连接字符串引起的。通过将其作为“应用程序设置”中的值,它可以正常工作。我猜测是因为适用于连接字符串值的加密。



查看完整回答
反对 回复 2023-09-16
  • 2 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信