簡體   English   中英

類庫中的 SQL 連接在 .NET 6 Web 應用程序中工作,在源 ASP.NET 網站中失敗

[英]SQL connection in class library works from .NET 6 web app, fails from source ASP.NET website

我們有一個較舊且復雜的 ASP.NET 4.8 站點(“網站”方法,而不是“Web 應用程序”)。 我正在創建一個新的 .NET 6 網絡應用程序,它將執行一些類似的功能。 我使用 .NET Framework 4.8 將舊站點的代碼改編為新的類庫,這樣我們就可以避免維護重復的代碼。 該庫包含使用 SqlConnection(而非 EF)調用 SQL Server 的代碼。

該庫適用於新的 .NET 6 應用程序,包括 SQL Server 調用。 但是當我將舊的 ASP.NET 站點指向圖書館時,SQL Server 調用失敗並出現以下錯誤:

Microsoft.Data.SqlClient.SqlException (0x80131904):建立與 SQL Server 的連接時發生了與網絡相關或特定於實例的錯誤。 服務器未找到或無法訪問。 驗證實例名稱是否正確以及 SQL Server 是否配置為允許遠程連接。

簡單地打開連接時它會失敗,如下所示:

var sqlConn = new SqlConnection(connectionString);
await sqlConn.OpenAsync();

這是在使用與 .NET 6 應用程序完全相同的庫時,在同一台機器上運行(SQL Server 是外部機器)。 我多次驗證連接字符串是完全一樣的。 我還在另一台機器上進行了測試。

作為測試,我創建了一個非常簡單的新類庫調用 SQL Server(使用硬編碼連接字符串),以及一個調用該庫的新 ASP.NET 4.8 網站。 這樣可行。 我在調用該測試庫的舊 ASP.NET 網站中添加了一個新的測試頁面。 由於未找到服務器錯誤而失敗。

總結一下,問題如下:

  • .NET 6 Web 應用 > .NET 4.8 類庫 SQL 客戶端 = OK
  • 測試 ASP.NET 4.8 網站 > .NET 4.8 類庫 SQL 客戶端 = OK
  • 完整的 ASP.NET 4.8 網站 > .NET 4.8 類庫 SQL 客戶端 = 失敗

所以問題不在於使用類庫調用 SQL Server 的基礎知識。 它一定是舊站點中的其他東西,但在花了幾天時間試圖查明原因后,我感到很困惑。 關於還有什么要看的建議表示贊賞。

為了回過頭來,我創建了一個新的空 ASP.NET 網站並開始添加舊網站的內容。 我想在某些時候,我會遇到 SQL 連接錯誤。 我逐漸添加內容,一點一點地添加,並在進行過程中進行測試。 但是我添加了所有內容,並沒有遇到錯誤,我仍然對導致舊站點絆倒的原因感到困惑。 但至少它現在有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM