我在 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")

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
我知道它很舊,但可能對將來的人有用。我的問題是由于 AppService“連接字符串”中的連接字符串引起的。通過將其作為“應用程序設置”中的值,它可以正常工作。我猜測是因為適用于連接字符串值的加密。
- 2 回答
- 0 關注
- 153 瀏覽
添加回答
舉報
0/150
提交
取消