EPiServer: время ожидания операции истекло

Используемые версии:

EPiServer 10 (с последними обновлениями пакетов)

Visual Studio 2017 15.0.0-RTW + 26228.4

Также встречается с VS 2015

Предисловие:

EPiServer - это CMS, которая позволяет определять типы контента и типы страниц в коде. Когда они будут обновлены, задача обновит соответствующие элементы в базе данных.

Когда я добавляю или удаляю свойства из типов страниц и создаю решение, и я ранее запускал проект, я получаю желтый экран смерти с надписью «Время ожидания операции истекло». Пытался опубликовать фрагмент на pastebin, по-видимому, не разрешено ссылаться на него, поэтому наслаждайтесь полной копипастой:

Server Error in '/' Application.

The wait operation timed out

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ComponentModel.Win32Exception: The wait operation timed out

Source Error: 


[No relevant source lines]

Source File: c:\Users\Nero\AppData\Local\Temp\Temporary ASP.NET Files\vs\629ed9b8\61dc577e\App_global.asax.zccg9sff.0.cs    Line: 0 

Stack Trace: 


[Win32Exception (0x80004005): The wait operation timed out]

[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, Action`1 wrapCloseInAction) +212
   System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +81
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +631
   System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +3790
   System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() +58
   System.Data.SqlClient.SqlDataReader.get_MetaData() +89
   System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) +388
   System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest) +2041
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) +377
   System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +53
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +255
   System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) +86
   Mediachase.BusinessFoundation.Data.Sql.<>c__DisplayClass49_0.<ExecuteReader>b__0() +170
   EPiServer.Data.Providers.SqlTransientErrorsRetryPolicy.Execute(Func`1 method) +713
   Mediachase.BusinessFoundation.Data.Sql.SqlHelper.WithRetry(Func`1 action) +118
   Mediachase.BusinessFoundation.Data.Sql.SqlHelper.ExecuteReader(SqlConnection connection, SqlTransaction transaction, CommandType commandType, String commandText, SqlParameter[] commandParameters, SqlConnectionOwnership connectionOwnership) +240
   Mediachase.BusinessFoundation.Data.Sql.SqlHelper.ExecuteReader(String connectionString, CommandType commandType, String commandText, SqlParameter[] commandParameters) +140
   Mediachase.BusinessFoundation.Data.Sql.SqlHelper.ExecuteReader(SqlContext context, CommandType commandType, String commandText, SqlParameter[] commandParameters) +167
   Mediachase.BusinessFoundation.Data.Sql.SqlHelper.ExecuteReader(SqlContext context, CommandType commandType, String commandText) +53
   Mediachase.BusinessFoundation.Data.Sql.Management.SystemStoredProcedure.ExecuteSpTables() +60
   Mediachase.BusinessFoundation.Data.Sql.Management.Database.FillTables(Database database, TableCollection tables) +112
   Mediachase.BusinessFoundation.Data.Sql.Management.Database.get_Tables() +423
   Mediachase.BusinessFoundation.Data.Sql.SqlContext.GetTable(String tableName) +160
   Mediachase.BusinessFoundation.Data.Sql.SqlCommandBuilder..ctor(String table) +67
   Mediachase.BusinessFoundation.Data.Sql.SelectCommandBuilder..ctor(String tableName, FilterElementCollection filters, SortingElementCollection sorting) +135
   Mediachase.BusinessFoundation.Data.DataHelper.List(String tableName, Int32 maxCount, FilterElementCollection filters, SortingElementCollection sorting) +213
   Mediachase.BusinessFoundation.Data.DataHelper.List(String tableName, Int32 maxCount) +187
   Mediachase.BusinessFoundation.Data.DataHelper.List(String tableName) +47
   Mediachase.BusinessFoundation.Data.Meta.Management.SqlSerialization.mcmd_MetaFieldTypeRow.List() +94
   Mediachase.BusinessFoundation.Data.Meta.Management.SqlSerialization.SqlSerializer.DeserializeInternal() +606
   Mediachase.BusinessFoundation.Data.Meta.Management.SqlSerialization.SqlSerializer.Deserialize() +110
   Mediachase.BusinessFoundation.Data.DataContext.InitMetaModel() +43
   Mediachase.BusinessFoundation.Data.DataContext.get_MetaModel() +66
   Mediachase.Commerce.Customers.Plugins.<>c.<CheckNeedInstall>b__14_0(String x) +21
   System.Linq.Enumerable.Any(IEnumerable`1 source, Func`2 predicate) +140
   Mediachase.Commerce.Customers.Plugins.AutoInstallMetaDataModule.CheckNeedInstall(String connectionString) +150
   Mediachase.Commerce.Customers.Plugins.AutoInstallMetaDataModule.Execute(BusinessContext context) +94
   Mediachase.Commerce.Initialization.CommerceInitialization.Initialize(InitializationEngine context) +341
   EPiServer.Framework.Initialization.Internal.<>c__DisplayClass3_0.<Initialize>b__0() +19
   EPiServer.Framework.Initialization.Internal.ModuleNode.Execute(Action a, String key) +52
   EPiServer.Framework.Initialization.Internal.ModuleNode.Initialize(InitializationEngine context) +80
   EPiServer.Framework.Initialization.InitializationEngine.InitializeModules() +295

[InitializationException: Initialize action failed for Initialize on class Mediachase.Commerce.Initialization.CommerceInitialization, Mediachase.Commerce, Version=10.4.2.0, Culture=neutral, PublicKeyToken=6e58b501b34abce3]
   EPiServer.Framework.Initialization.InitializationEngine.InitializeModules() +608
   EPiServer.Framework.Initialization.InitializationEngine.ExecuteTransition(Boolean continueTransitions) +145
   EPiServer.Framework.Initialization.InitializationEngine.Initialize() +40
   EPiServer.Framework.Initialization.<>c.<FrameworkInitialization>b__7_0(InitializationEngine e) +9
   EPiServer.Framework.Initialization.InitializationModule.EngineExecute(HostType hostType, Action`1 engineAction) +377
   EPiServer.Framework.Initialization.InitializationModule.FrameworkInitialization(HostType hostType) +172
   EPiServer.Global..ctor() +76
   WoodMac.Site.Global..ctor() +29
   ASP.global_asax..ctor() in c:\Users\Nero\AppData\Local\Temp\Temporary ASP.NET Files\vs\629ed9b8\61dc577e\App_global.asax.zccg9sff.0.cs:0

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) +0
   System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +162
   System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) +233
   System.Activator.CreateInstance(Type type, Boolean nonPublic) +75
   System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) +1095
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) +212
   System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture) +19
   System.Web.HttpRuntime.CreateNonPublicInstance(Type type, Object[] args) +60
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +289
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +303

[HttpException (0x80004005): Exception has been thrown by the target of an invocation.]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +781
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +96
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +195

Иногда мне удается выйти из этого, принудительно перезапустив веб-сайт, изменив web.config. Иногда требуется 4-5 перезапусков, в других случаях я отказываюсь и перезапускаю Visual Studio, потому что остановка и перезапуск IIS не работает, как и очистка, восстановление и повторный запуск. Единственный способ «гарантировать» (я заключил это в кавычки, потому что клянусь, это не сработало один раз) выполнение без YSOD - это перезапустить VS.

Это проблема, которая, вероятно, существует и в среде DXC, потому что я иногда получаю 504 при развертывании, но, к счастью, они решаются за несколько обновлений. Не уверен, почему он просто умирает на IIS Express.

Я пробовал обычные исправления, которые пытаются использовать настраиваемые тайм-ауты в строках подключения, а также специальные исправления epi, такие как конфигурация хранилища данных. Пшик.

Естественно, поскольку мы находимся в середине разработки, это действительно неприятная проблема, поскольку свойства обновляются и удаляются несколько раз в день, и любое время, потраченное на загрузку, не тратится на разработку. Есть ли способ гарантировать, что, независимо от того, какие другие ошибки произойдут, не возникнет проблем, связанных с подключениями с превышением времени ожидания?


person NeroS    schedule 03.05.2017    source источник
comment
Какая это версия Episerver?   -  person Eric Herlitz    schedule 03.05.2017
comment
Извините, намеревался поместить его где-то посередине, но забыл - это Epi 10 с последними обновленными пакетами (я думаю, что сейчас 10.7).   -  person NeroS    schedule 03.05.2017
comment
У меня были аналогичные проблемы при установке с использованием Epi commerce давным-давно, эти ошибки зависели от того, что я выполнял инициализацию, которая противоречила изменениям, внесенным Episerver Cms в базу данных.   -  person Eric Herlitz    schedule 05.05.2017


Ответы (1)


Я нашел эту поддержку статья об исключениях по тайм-ауту во время запланированных заданий.

То же исправление сработало и для этой проблемы с тайм-аутом при добавлении / удалении свойств!

person Linda    schedule 29.06.2020
comment
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - Из отзыва - person PeterJ; 29.06.2020