Umbraco 7.10.4 System.Threading.ThreadAbortException: поток был прерван

Я использую последнюю версию Umbraco (7.10.4) в службе приложений Azure. Вчера я понял, что мой сайт показывает пустую белую страницу, но с HTTP-кодом состояния 200 (хорошо), поэтому мои тесты доступности вернулись нормально, и я не получил никаких уведомлений, и сайт практически не работал в течение 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()

Я перезапустил сайт, и он снова начал работать, но есть 2 вопроса:

1- Как предотвратить это снова? Увеличение продолжительности таймаута может помочь, но что, если это займет больше, чем это? Обычно вы не ожидаете, что что-то подобное произойдет в 3 часа ночи, когда на веб-сайте почти никто не будет использовать облачное решение.

2- Как мне установить оповещения об этом? Почему возвращается 200?!:|

0 ответов

Другие вопросы по тегам