我在 .NET 5(核心)中有一個 Web 應用程式(api)。它訪問一個 Azure DB 并擁有數十個運行良好的表。但是,1 個 api 請求始終回傳 0 條記錄,但僅當 api 托管在 Azure 應用服務中時才會回傳。當它在本地運行時,在除錯或發布中,它按預期作業。
- Web 請求從不回傳錯誤,全部為 200,但沒有記錄。
- 同一表的其他查詢會產生預期的結果。
- 當我在 db 呼叫 [a simple ctx.MyTable.Where(i => id > 0)] 之后登錄時,它記錄了沒有回傳任何記錄。
- 當我在本地運行 api(仍然使用 Azure DB)時,它總是有效。
- 我試過除錯和發布。
- 我已將 Azure 應用服務更改為 .NET 5、.NET 6(早期)、32 位、64 位。
- 我已將所有 NuGet 包更新為最新版本。
- 讓我補充一下,我已經在本地和主機,除錯和發布中記錄了資料庫連接字串,它總是相同的。
這些真的讓我著迷。這是一個大專案,所以我無法展示代碼......但我什至想不出可能導致這種行為的場景。
uj5u.com熱心網友回復:
如果不檢查代碼或錯誤,很難說是資料庫問題還是代碼優先問題。嘗試更改物體框架連接字串。還嘗試使用串列而不是 db 物件(如果您正在這樣做)請求您的資料 -
public IEnumerable<Conversation> GetDBname()
{
return db.DBname.ToList();
}
確保在 Web.config 檔案中使用 Azure 連接(SQL 資料庫連接字串ADO.NET)。
<connectionStrings>
<add name="MyAzzureConnection" connectionString="paste the connection string from Azure here" />
</connectionStrings>
查看使用 Azure SQL 資料庫檔案將 ASP.NET 應用程式部署到 Azure和將 Web API 2 與物體框架 6 一起使用以了解更多資訊。
您還應該檢查此Web API implementation - Best Practices Microsoft 檔案以進行澄清。
uj5u.com熱心網友回復:
好,我知道了!在呼叫樹的某個地方使用了一個日期,該日期沒有在查詢中修剪掉,而是在日志中。因此,從日志中看,所使用的日期在 Azure 上與在本地使用的日期相同。事實上,兩者之間有 n 個不同的時區。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/334196.html
標籤:C# 天蓝色 azure-sql-数据库 .net-5
