Entity Framework 4 Procédure stockée Délai d'attente d'appel

J'ai une procédure stockée importés dans EF4, et quand je l'appelle avec certains paramètres après 30 secondes, il lève une erreur de délai. Dans SQL Server profiler, je peux voir l'appel de procédure stockée avec des paramètres appropriés, en prenant un peu plus de 30 secondes, ce qui est le délai d'attente sur ma demande.

CEPENDANT lorsque j'exécute les mêmes SQL envoyé à la profiler dans l'Analyseur de Requêtes, il s'exécute sous-seconde. Quelle est la cause de cette contradiction entre le fait d'être appelé à partir d'EF et d'être appelé à partir de SQL Server Management Studio?

Full stack trace .NET d'erreur ci-dessous.

[SqlException (0x80131904): Délai d'attente expiré. Le délai d'attente
écoulé avant la fin de l'opération ou le serveur n'est pas
répondre.]
Système.Les données.SqlClient.SqlConnection.OnError(exception SqlException,
Valeur de type Boolean breakConnection) +2073486
Système.Les données.SqlClient.SqlInternalConnection.OnError(SqlException
exception, d'une valeur de type Boolean breakConnection) +5064444
Système.Les données.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
Système.Les données.SqlClient.TdsParser.Exécuter(RunBehavior runBehavior,
SqlCommand cmdHandler, SqlDataReader dataStream,
BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject
stateObj) +2275
Système.Les données.SqlClient.SqlDataReader.ConsumeMetaData() +33
Système.Les données.SqlClient.SqlDataReader.get_MetaData() +86
Système.Les données.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds,
RunBehavior runBehavior, Chaîne resetOptionsString) +311
Système.Les données.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean
async) +987
Système.Les données.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Chaîne
méthode, DbAsyncResult résultat) +162
Système.Les données.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior
cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Chaîne
la méthode) +32
Système.Les données.SqlClient.SqlCommand.ExecuteReader(CommandBehavior
le comportement, la méthode de Chaîne) +141
Système.Les données.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior
le comportement) +12
Système.Les données.Commun.DbCommand.ExecuteReader(CommandBehavior comportement)
+10 Système.Les données.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand
entityCommand CommandBehavior comportement) +443

[EntityCommandExecutionException: Une erreur s'est produite lors de l'exécution
la définition de commande. Voir l'exception interne pour plus de détails.]
Système.Les données.EntityClient.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand
entityCommand CommandBehavior comportement) +479
Système.Les données.Objets.ObjectContext.CreateFunctionObjectResult(EntityCommand
entityCommand EntitySet entitySet, EdmType edmType, MergeOption
mergeOption) +182
Système.Les données.Objets.ObjectContext.ExecuteFunction(String functionName,
MergeOption mergeOption, ObjectParameter[] paramètres) +218
Système.Les données.Objets.ObjectContext.ExecuteFunction(String functionName,
ObjectParameter[] paramètres) +53
MetaView.DAL.MFCMData.MFCMDATAEntities.GetTradingOpenPositionCounterParty(Nullable1
positionDT, Nullable
1 tradingAccountID)
C:\Projets\TRÉSORERIE\web\MetaView\MetaView.DAL.MFCMData\MFCMData.Le concepteur.cs:7064
MetaView.BusinessLayer.Partagé.Comptes.Les contreparties.GetCounterParties(Int32
tradingAccountID)
C:\Projets\TRÉSORERIE\web\MetaView\MetaView.BusinessLayer\Shared\Comptes\Contreparties.cs:161

source d'informationauteur Jason Lind