2011-11-28 33 views
0

我在我的一些網絡服務器中出現錯誤。我不知道我的服務器中發生了什麼,無論這是SQL DB相關的還是與Web服務器相關的。在我的一些Web服務器中總是出現錯誤:

消息:: Save-Timeout過期。操作完成之前超時的時間或服務器沒有響應。 System.Data.SqlClient.SqlConnection.OnError(SqlException異常,布爾breakConnection)在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)在System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream ,System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior,RunBehavior runBehavior,Boolean returnStream,Boolean async)在System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,RunBehavior runBehavior,String resetOptionsString)上的BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj) System.Data.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result,String methodName,Boolean sendToPipe)System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior,RunBehavior runBehavior,布爾returnStream,字符串方法,DbAsyncResult結果) .SqlClient.SqlCommand.ExecuteNonQuery()在Norman.Mess age.Save(Int32 nSiteID,String sBody,Int32 nUserID,String sUserIP)

請幫我解決如何排除故障。

+2

查詢花費很長時間才能完成,因此SQL Server會中止事務。看看優化這些查詢和你的數據庫。 – Oded

+0

聽起來像你的SQL服務器無法訪問。你能「ping」嗎? – Bohemian

+0

這個異常似乎來自Command的execute語句,所以連接已經打開(並且服務器可到達)。正如@Oded所說,我們需要查看SQL查詢本身以及查詢表上的一些信息。你能發佈這些嗎? –

回答

0

你使用某種ORM?我猜測有一些行鎖被你的一個事務處理在表上,這就是爲什麼當選擇在同一個表上運行時你會看到超時。

我會仔細看看你的所有寫操作,並確保它們發生在http請求的末尾,並且在寫入db之後避免大的處理,特別是如果你依靠自動遞增的id等。鎖定桌子。

+0

如何識別這個問題,我的意思是如何知道是什麼造成這個問題。 – user1069089

+0

嗨如何識別該問題以及如何解決? – user1069089

相關問題