Я использую Entity Framework для работы с моей базой данных.
Я создал службу WCF, установленную на IIS.
Эта служба получает много запросов, и каждый раз ей приходится обновлять некоторые записи в базе данных. Иногда, кажется случайным, сбой доступа к данным, с этим сообщением:
в
System.Data.SqlClient.SqlInternalConnectionTds..ctor (DbConnectionPoolIdentity
идентичность, SqlConnectionString connectionOptions, SqlCredential
учетные данные, Object providerInfo, String newPassword, SecureString
newSecurePassword, логическое перенаправленноеUserInstance, SqlConnectionString
userConnectionOptions, SessionData reconnectSessionData,
DbConnectionPool pool, String accessToken, Boolean
applyTransientFaultHandling, SqlAuthenticationProviderManager
sqlAuthProviderManager)
в
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (DbConnectionPool
пул, параметры DbConnection owningObject, DbConnectionOptions,
DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
в
System.Data.ProviderBase.DbConnectionPool.CreateObject (DbConnection
owningObject, DbConnectionOptions userOptions, DbConnectionInternal
oldConnection)
в
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (DbConnection
owningObject, DbConnectionOptions userOptions, DbConnectionInternal
oldConnection)
в
System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection
owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean
allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions
userOptions, DbConnectionInternal & connection)
в
System.Data.ProviderBase.DbConnectionPool.TryGetConnection (DbConnection
owningObject, TaskCompletionSource`1 retry, DbConnectionOptions
userOptions, DbConnectionInternal & connection)
в
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection (DbConnection
owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions
userOptions, DbConnectionInternal oldConnection, DbConnectionInternal &
подключение)
в
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal (DbConnection
externalConnection, DbConnectionFactory connectionFactory,
TaskCompletionSource`1 повтор, DbConnectionOptions userOptions)
в
System.Data.SqlClient.SqlConnection.TryOpenInner (TaskCompletionSource`1
повторить)
в
System.Data.SqlClient.SqlConnection.TryOpen (TaskCompletionSource`1
повторить)
в System.Data.SqlClient.SqlConnection.Open ()
в
System.Data.Entity.Infrastructure.Interception.InternalDispatcher 1.Dispatch[TTarget,TInterceptionContext](TTarget
target, Action
2 операция, TInterceptionContext interceptionContext,
Действие 3 executing, Action
3 выполнено)
в
System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open (DbConnection
соединение, DbInterceptionContext interceptionContext)
в
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy. <> C__DisplayClass1.b__0 ()
в
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute [TResult] (Func`1
работа)
в System.Data.Entity.Core.EntityClient.EntityConnection.Open ()
--- Fine della traccia dello stack dell'eccezione interna ---
в System.Data.Entity.Core.EntityClient.EntityConnection.Open ()
в
System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection (Boolean
shouldMonitorTransactions)
в
System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction [Т] (Func`1
func, IDbExecutionStrategy executeStrategy, Boolean
startLocalTransaction, Boolean releaseConnectionOnSuccess)
в
System.Data.Entity.Core.Objects.ObjectQuery`1. <> C__DisplayClass7.b__5 ()
в
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute [TResult] (Func`1
работа)
в
System.Data.Entity.Core.Objects.ObjectQuery 1.GetResults(Nullable
1
forMergeOption)
в
System.Data.Entity.Core.Objects.ObjectQuery`1..GetEnumerator> b__0 ()
в System.Data.Entity.Internal.LazyEnumerator`1.MoveNext ()
в System.Linq.Enumerable.FirstOrDefault [TSource] (IEnumerable`1
источник)
в Myservice.UpdateState (идентификатор строки, строка codiceStato, строка
информация, логическое inviaEmail, String dal) в C: \ MyService.svc.cs: riga 52
Поскольку строка подключения всегда одна и та же (в файле web.config) и большая часть запроса выполняется успешно, почему иногда этот код вызывает исключение, указанное выше?
Любые предложения приветствуются, я не знаю, в чем здесь проблема.