Ошибка удаления IUser в EpiServer - SqlException: время ожидания выполнения - PullRequest
0 голосов
/ 09 января 2019

Я использовал,

CommunitySystem.CurrentContext.DefaultSecurity.RemoveUser(IUser user);

Удалить пользователя.

Тем не менее, это работало нормально. Но вдруг это дало ошибку. И это происходит вечно. Исключение выдает RemoveUser (пользователь IUser) .

Сведения об исключении приведены ниже,

System.Data.SqlClient.SqlException (0x80131904): Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding. ---> System.ComponentModel.Win32Exception (0x80004005): The wait operation timed out
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at EPiServer.Community.Forum.Data.ForumFactory.<>c__DisplayClass33_0.<UserRemovedCleanUp>b__0()
at EPiServer.Data.Providers.Internal.SqlDatabaseExecutor.<>c__DisplayClass32_0.<ExecuteTransaction>b__0()
at EPiServer.Data.Providers.Internal.SqlDatabaseExecutor.<>c__DisplayClass33_0`1.<ExecuteTransaction>b__0()
at EPiServer.Community.Forum.ForumModule.DefaultSecurity_RemovedUser(ISecurityHandler sender, IRemoveUserEventArgs args)
at EPiServer.Common.Security.RemoveUserEventHandler.Invoke(ISecurityHandler sender, IRemoveUserEventArgs args)
at EPiServer.Common.Security.SecurityHandler.OnRemoveUser(IRemoveUserEventArgs args)
at EPiServer.Common.Security.Data.SecurityFactory.<>c__DisplayClass57_0.<RemoveUser>b__0()
at EPiServer.Data.Providers.Internal.SqlDatabaseExecutor.<>c__DisplayClass32_0.<ExecuteTransaction>b__0()
at EPiServer.Data.Providers.Internal.SqlDatabaseExecutor.<>c__DisplayClass33_0`1.<ExecuteTransaction>b__0()
at EPiServer.Data.Providers.SqlTransientErrorsRetryPolicy.Execute[TResult](Func`1 method)
at EPiServer.Common.Security.SecurityHandler.RemoveUser(IUser user)

Как указано выше, похоже, что это происходит из-за проблемы с БД. Но какая БД? Как я могу поставить диагноз? Что может вызвать это? Любая помощь приветствуется. Спасибо.

Дополнительная информация:

EPiServer.CommonFramework version=9.0.1
EPiServer.CMS.Core version=11.9.2
EPiServer.Community version=9.0.0

Обновление: я разместил такой же вопрос на форумах Episerver и не получил ответа

1 Ответ

0 голосов
/ 15 мая 2019

Увеличение значения тайм-аута episerver.datastore до 5 минут сработало.

<episerver.dataStore>
  <dataSettings 
  connectionStringName="EPiServerDB"
  retries="5"
  retryDelay="0:0:0.1"
  databaseQueryTimeout="0:05:00" />
</episerver.dataStore>

Примечание: dataSettings не было в коде. Я добавил это явно.

...