Umbraco 7.10.4 System.Threading.ThreadAbortException:线程正在中止

时间:2018-06-11 08:20:18

标签: umbraco umbraco7

我在Azure应用服务上运行最新版本的Umbraco(7.10.4)。昨天我发现我的网站显示一个空白的白页,但HTTP状态代码为200(ok),因此我的可用性测试返回正常,我没有得到任何通知,该网站几乎停机4小时:|

当我意识到我用谷歌搜索它时,原因显然是SQL查询超时了。 https://our.umbraco.org/forum/core/general/49635-Umbraco-cannot-start-Error-Republishing-Thread-was-being-aborted

有趣的是,在尝试从Umbraco获取设置页面时,我的页面中的线程被阻止(或者至少异常开始提升)。

2018-06-10 03:27:01,807 [P1332/D2/T1] INFO  Umbraco.Core.CoreBootManager - Umbraco 7.10.4 application starting on xxx
 2018-06-10 03:27:02,087 [P1332/D2/T1] INFO  Umbraco.Core.MainDom - Acquiring MainDom...
 2018-06-10 03:27:02,087 [P1332/D2/T1] INFO  Umbraco.Core.MainDom - Acquired MainDom.
 2018-06-10 03:27:09,370 [P1332/D2/T1] INFO  Umbraco.Core.DatabaseContext - CanConnect = True
 2018-06-10 03:27:09,933 [P1332/D2/T1] INFO  Web.WebApiConfig - Register webapi
 2018-06-10 03:27:10,041 [P1332/D2/T1] INFO  Umbraco.Web.Cache.CacheRefresherEventHandler - Initializing Umbraco internal event handlers for cache refreshing
 2018-06-10 03:27:17,634 [P1332/D2/T1] INFO  Umbraco.Web.Search.ExamineEvents - Initializing Examine and binding to business logic events
 2018-06-10 03:27:21,666 [P1332/D2/T1] INFO  Umbraco.Web.Search.ExamineEvents - Adding examine event handlers for index providers: 3
 2018-06-10 03:27:21,745 [P1332/D2/T1] INFO  Umbraco.Core.CoreBootManager - Umbraco application startup complete (took 21747ms)
 2018-06-10 03:27:23,447 [P1332/D2/T1] INFO  Web.CustomStartup - CustomStartup done!
 2018-06-10 03:32:37,047 [P1332/D2/T28] ERROR Web.Attributes.ApiExceptionFilterAttribute - exception happened:
System.Threading.ThreadAbortException: Thread was being aborted.
   at Umbraco.Core.Cache.DictionaryCacheProviderBase.<>c__DisplayClass10_0.<GetSafeLazy>b__0()
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.LazyInitValue()
   at Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey, Func`1 getCacheItem, Nullable`1 timeout, Boolean isSliding, CacheItemPriority priority, CacheItemRemovedCallback removedCallback, CacheDependency dependency)
   at Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey, Func`1 getCacheItem, Nullable`1 timeout, Boolean isSliding, CacheItemPriority priority, CacheItemRemovedCallback removedCallback, String[] dependentFiles)
   at Umbraco.Core.Cache.DeepCloneRuntimeCacheProvider.GetCacheItem(String cacheKey, Func`1 getCacheItem, Nullable`1 timeout, Boolean isSliding, CacheItemPriority priority, CacheItemRemovedCallback removedCallback, String[] dependentFiles)
   at Umbraco.Core.Manifest.ManifestBuilder.get_PropertyEditors()
   at Umbraco.Core.PropertyEditors.PropertyEditorResolver.<>c__DisplayClass2_0.<.ctor>b__0()
   at System.Lazy`1.CreateValue()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Lazy`1.get_Value()
   at Umbraco.Core.PropertyEditors.PropertyEditorResolver.GetByAlias(String alias)
   at Umbraco.Core.PropertyEditors.ValueConverters.JsonValueConverter.IsConverter(PublishedPropertyType propertyType)
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Umbraco.Core.Models.PublishedContent.PublishedPropertyType.InitializeConverters()
   at Umbraco.Core.Models.PublishedContent.PublishedContentType.<.ctor>b__3_0(PropertyType x)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Umbraco.Core.Models.PublishedContent.PublishedContentType..ctor(IContentTypeComposition contentType)
   at Umbraco.Core.Models.PublishedContent.PublishedContentType.CreatePublishedContentType(PublishedItemType itemType, String alias)
   at Umbraco.Core.Cache.CacheProviderExtensions.<>c__DisplayClass5_0`1.<GetCacheItem>b__0()
   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)
   at Umbraco.Core.Cache.CacheProviderExtensions.GetCacheItem[T](ICacheProvider provider, String cacheKey, Func`1 getCacheItem)
   at Umbraco.Core.Models.PublishedContent.PublishedContentType.Get(PublishedItemType itemType, String alias)
   at Umbraco.Web.PublishedCache.XmlPublishedCache.XmlPublishedContent.InitializeNode(XmlNode xmlNode, Boolean legacy, Boolean isPreviewing, Int32& id, Guid& key, Int32& template, Int32& sortOrder, String& name, String& writerName, String& urlName, String& creatorName, Int32& creatorId, Int32& writerId, String& docTypeAlias, Int32& docTypeId, String& path, Guid& version, DateTime& createDate, DateTime& updateDate, Int32& level, Boolean& isDraft, PublishedContentType& contentType, Dictionary`2& properties, Func`3 getPublishedContentType)
   at Umbraco.Web.PublishedCache.XmlPublishedCache.XmlPublishedContent.InitializeNode()
   at Umbraco.Web.PublishedCache.XmlPublishedCache.XmlPublishedContent.get_DocumentTypeAlias()
   at Umbraco.Web.PublishedContentExtensions.IsDocumentType(IPublishedContent content, String docTypeAlias)
   at Web.Api.TemplatesController.GetSettings()
   at lambda_method(Closure , Object , Object[] )
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()

我重新启动了网站并且它已经开始重新运行,但有两个问题:

1-如何防止再次发生这种情况?增加超时持续时间可能会有所帮助,但如果需要更多时间呢?通常,当基于云的解决方案在网站上几乎没有人时,你不会期望在3 A.M发生这样的事情。

2-如何为其设置警报?为什么回归200?! :|

0 个答案:

没有答案