,我們使用的是.NET 4 MVC2與EF & SQL Server 2005的SQL異常使用.NET 4 EF
對於一些要求,而且這種情況很少出現,只有當我們正在做這與類實現搜索映射到進行全文搜索存儲過程,我們得到 異常:
[SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.]
System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) +2030802
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +5009584
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2275
System.Data.SqlClient.SqlDataReader.ConsumeMetaData() +33
System.Data.SqlClient.SqlDataReader.get_MetaData() +86
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +311
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) +987
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) +162
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +32
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +141
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +12
System.Data.Common.DbCommand.ExecuteReader(CommandBehavior behavior) +10
System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior) +443
[EntityCommandExecutionException: An error occurred while executing the command definition. See the inner exception for details.]
System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior) +479
System.Data.Objects.ObjectContext.CreateFunctionObjectResult(EntityCommand entityCommand, EntitySet entitySet, EdmType edmType, MergeOption mergeOption) +182
System.Data.Objects.ObjectContext.ExecuteFunction(String functionName, MergeOption mergeOption, ObjectParameter[] parameters) +218
System.Data.Objects.ObjectContext.ExecuteFunction(String functionName, ObjectParameter[] parameters) +53
如果發生錯誤後(使用相同或不同的術語)搜索重試,它的工作原理定期。
任何建議高度讚賞
感謝
--MB
思考1:唯一的例外似乎到SQL Server的連接之後發生的,並且在執行存儲過程,我對麼?如果是這種情況,那麼我需要擴展查詢執行超時而不是連接超時?這是可能的,在哪裏?
想法2:也許我錯了,這可能是一個在池中陳舊的連接?在Java世界中,您可以在應用程序獲取它之前傳遞在連接上執行的sql,以確保連接已打開並正常工作?這可能是造成這種情況嗎?我一直沒能中http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx
思考3找到這樣一個選項:我迷路了:)
至於連接超時屬性,正如我所說我不認爲這是問題。 MSN表示:「終止嘗試併產生錯誤之前,等待連接到服務器的時間長度(以秒爲單位)。」但是,在等待連接到服務器時,異常似乎正在發生,而在等待查詢的執行時。 Arent這兩樣東西不同? 我不認爲這個問題是SPROC執行時間,因爲在例外之後,當我重試對另一個術語進行搜索時,它一切正常。 無論如何非常感謝你的答案,我會嘗試一下。 – 2010-12-09 10:27:28