Sql-Server

連接問題不同的錯誤.net應用程序

  • February 7, 2021

我們有一個帶有一些關係數據庫的 SQL Server。我們有另一個帶有與數據庫通信的應用程序的網路伺服器。

我們的一位客戶有問題。我們每天晚上都會遇到一些錯誤,並且很難確定問題所在。有一個 web/wcf 服務。

我們使用 SQL Server Profiler 跟踪了數據庫,並通過以下方式辨識了很多連接:

Audit login
RPC:Completed
Audit logout

同一個 SPID 十倍以上。這是正常的行為嗎?

錯誤

  1. >

超時已過期。從池中獲取連接之前的超時時間已過。這可能是因為所有池連接都在使用中並且達到了最大池大小。

在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,TaskCompletionSource`1 重試,DbConnectionOptions userOptions,DbConnectionInternal oldConnection,DbConnectionInternal& 連接)

  1. >

超時已過。在操作完成之前超時時間已過或伺服器沒有響應。該語句已終止。

  1. >

連接超時已過期。嘗試使用登錄前握手確認時超時時間已過。這可能是因為登錄前握手失敗或伺服器無法及時響應。嘗試連接到此伺服器所花費的持續時間是 -

$$ Pre-Login $$初始化=21033;握手=0;

在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

等待操作超時

  1. >

從伺服器接收結果時發生傳輸級錯誤。(提供者:TCP Provider,錯誤:0 - 指定的網路名稱不再可用。)

在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

指定的網路名稱不再可用

  1. >

呼叫的目標已拋出異常。等待操作超時

  1. >

伺服器上發生錯誤,但錯誤消息和預設錯誤消息失去,或無法檢索。System.UnauthorizedAccessException:未授權訪問

我們需要一些建議來確定問題的原因。我們認為有幾個:網路、查詢性能等。

我認為您可能在 Web 伺服器上遇到 TCP 埠耗盡。避免 TCP/IP 埠耗盡是理解該問題的良好起點。這通常是應用程序設計/實現問題。

https://msdn.microsoft.com/en-us/library/aa560610%28v=bts.20%29.aspx?f=255&MSPPError=-2147217396

“Connection Timeout expired”錯誤一般出現在以下幾種情況:

  • SQL Server 數據庫引擎的實例未執行。
  • SQL Server Browser 服務未執行。
  • TCP/IP 被禁用。
  • 伺服器名稱鍵入不正確。
  • 有網路問題。
  • 數據庫引擎實例的 TCP/IP 埠被防火牆阻止。
  • 客戶端和伺服器未配置為使用相同的網路協議。

要檢查如何根據上述原因跟踪此錯誤,請檢查Connection Timeout Expired。嘗試使用登錄前握手確認時超時時間已過

引用自:https://dba.stackexchange.com/questions/100874