我在 Azure 中有一個(gè)應(yīng)用程序服務(wù),作為我正在設(shè)計(jì)的系統(tǒng)的 API 運(yùn)行。由于 API 負(fù)責(zé)直接訪問(wèn)數(shù)據(jù)庫(kù),因此我顯然不想在源代碼中存儲(chǔ)連接字符串,因此將其存儲(chǔ)在 Azure 儀表板上應(yīng)用服務(wù)配置中的連接字符串部分中。我的代碼幾乎是這個(gè)>> https://github.com/medhatelmasry/JwtAuthentication/blob/master/JwtAuthentication/Startup.cs的抄本,除了我檢查了它運(yùn)行的當(dāng)前配置(調(diào)試、發(fā)布)等),這樣當(dāng)我在 Visual Studio 中進(jìn)行本地調(diào)試時(shí),我使用的是 localdb 連接(硬編碼)。我有一個(gè) appsettings.json 文件,但其中沒(méi)有連接字符串,只有 JWT 身份驗(yàn)證和日志記錄的設(shè)置。當(dāng)這個(gè)被調(diào)用時(shí):services.AddDbContext<ApplicationDbContext>(
option => option.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));我在 Azure 中得到以下信息:Unhandled Exception: System.ArgumentNullException: Value cannot be null
Parameter name: connectionString在過(guò)去的一周里,我一直在愚蠢地工作,試圖讓這個(gè)工作正常進(jìn)行,但我一直在兜圈子,我快把自己逼瘋了。Google 和 StackOverflow 的結(jié)果好壞參半,因?yàn)槎嗄陙?lái)不同版本的 Azure 和 ASP.NET Core 給出了不同的答案。就像它根本無(wú)法訪問(wèn) Azure 配置一樣。請(qǐng)參閱上面的鏈接,因?yàn)檫@與我的設(shè)置相同,并且基于 .NET 版本和類型(核心或框架)有許多不同的答案。編輯:請(qǐng)閱讀我的問(wèn)題,連接字符串不存儲(chǔ)在項(xiàng)目的 appsettings.json 文件中,它存儲(chǔ)在 Azure 中,如下所示(我已將連接字符串名稱清空,但它們確實(shí)與代碼中的內(nèi)容匹配,不,它是不是“默認(rèn)連接”):
2 回答

鴻蒙傳說(shuō)
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
確保變量的命名有效。您可以在“應(yīng)用服務(wù)”邊欄選項(xiàng)卡中的“開(kāi)發(fā)工具”->“高級(jí)工具”中從 SCM 站點(diǎn)查看實(shí)際的環(huán)境變量。
通過(guò)應(yīng)用服務(wù)的門(mén)戶配置部分添加的名稱為“DefaultConnection”的連接字符串在環(huán)境變量中將類似于 SQLCONNSTR_DefaultConnection。要在代碼中訪問(wèn)它,你可以這樣做configuration.GetConnectionString("DefaultConnection")

藍(lán)山帝景
TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
我知道它很舊,但可能對(duì)將來(lái)的人有用。我的問(wèn)題是由于 AppService“連接字符串”中的連接字符串引起的。通過(guò)將其作為“應(yīng)用程序設(shè)置”中的值,它可以正常工作。我猜測(cè)是因?yàn)檫m用于連接字符串值的加密。
- 2 回答
- 0 關(guān)注
- 166 瀏覽
添加回答
舉報(bào)
0/150
提交
取消