【问题标题】:EPiServer: The wait operation timed outEPiServer:等待操作超时
【发布时间】:2020-06-29 17:09:37
【问题描述】:

使用的版本:

EPiServer 10(带有最新软件包更新)

Visual Studio 2017 15.0.0-RTW+26228.4

VS 2015 也会发生

前言:

EPiServer 是一个允许在代码中定义内容类型和页面类型的 CMS。当这些被更新时,任务将更新数据库中的各个项目。

当我在页面类型中添加或删除属性并构建解决方案时,并且我之前已经运行过该项目,我得到一个黄屏死机,并显示“等待操作超时”。试图在 pastebin 上发布 sn-p,显然不允许在那里链接,所以享受完整的复制粘贴:

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-less 执行是重新启动 VS。

这也是DXC环境中可能存在的问题,因为我在部署时偶尔会遇到504,但幸运的是它们在几次刷新后得到了解决。不知道为什么它会在 IIS Express 上死掉。

我已经尝试了通常的修复,即尝试在连接字符串中使用自定义超时,以及特定于 epi 的修复,例如 dataStore configsection。齐尔奇。

当然,由于我们正处于开发过程中,这是一个非常令人讨厌的问题,因为属性每天会更新和删除多次,并且任何用于启动的时间都不是用于开发的时间。有什么方法可以确保无论发生什么其他错误,都不会出现与超时连接相关的问题?

【问题讨论】:

  • Episerver 是哪个版本的?
  • 抱歉,打算把它放在两者之间,但忘了 - 它是 Epi 10,带有最新更新的软件包(我认为目前是 10.7)。
  • 很久以前我在使用 Epi commerce 的安装中遇到过类似的问题,这些错误取决于我执行的初始化操作,这些操作与 Episerver Cms 对数据库所做的更改相冲突。

标签: c# sql-server asp.net-mvc episerver


【解决方案1】:

我发现this support article 在计划作业期间出现超时异常。

在添加/删除属性时,同样的“修复”也适用于超时问题!

【讨论】:

    猜你喜欢
    • 2015-02-02
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 2013-04-28
    相关资源
    最近更新 更多