Umbraco:Azure Web Apps上的意外网络错误

时间:2017-04-26 08:56:36

标签: azure umbraco azure-web-sites umbraco7

我们在Azure Web Apps上托管了一个Umbraco网站(版本7.5.11)。

我们间歇性地遇到以下异常(过去3周内有3次)。一旦发生异常,它会将网站关闭,直到我们重新发布Umbraco中的主节点。在所有其他时间,网站都按预期工作,包括从服务器检索图像文件。

异常类型:IOException

异常消息:发生意外的网络错误。在Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(字符串cacheKey,FUNC1 getCacheItem,Nullable1超时,布尔isSliding,CacheItemPriority优先权,CacheItemRemovedCallback removedCallback,的CacheDependency依赖性)在Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(字符串cacheKey,FUNC1 getCacheItem,Nullable1 timeout,Boolean isSliding,CacheItemPriority priority,CacheItemRemovedCallback removedCallback,String [] dependentFiles)at Umbraco.Core.Cache.DeepCloneRuntimeCacheProvider.GetCacheItem(String cacheKey,Func1 getCacheItem,Nullable1 timeout,Boolean isSliding,CacheItemPriority priority,CacheItemRemovedCallback removedCallback,String [] dependentFiles) at Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetCacheValues(Int32 id,Func2 func)at Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetUmbracoMedia(Int32 id)at Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetById(UmbracoContext umbracoConte) xt,布尔预览,Int32 nodeId)Umbraco.Web.PublishedCache.ContextualPublishedCache1.GetById(布尔预览,Int32 contentId)在Umbraco.Web.PublishedContentQuery.DocumentById(Int32 id,ContextualPublishedCache缓存,Object ifNotFound)位于Umbraco.Web.PublishedContentQuery。 Umbraco.Web.UmbracoHelper.Media(String id)的媒体(Int32 id)

媒体文件存在,重新发布主节点使网站重新上线。

在例外情况下,没有部署代码更改,也没有在Umbraco内更新/发布任何页面。

有没有人经历过类似的事情,或者根本原因是什么?

1 个答案:

答案 0 :(得分:8)

根据PublishedMediaCache.cs的源代码,例外通常是由以下问题引起的。

检查索引已损坏。

这是umbraco论坛上与您的问题相关的帖子。

Examine corruption issues

here is the solution来自@Shannon Deminick的这个问题。

如果您使用的是Azure网络应用并且不是自动缩放,则应使用以下设置:

  1. useTempStorage = “同步”
  2. 使用此功能存储本地索引文件:http://issues.umbraco.org/issue/U4-7614
  3. 从索引路径中删除{machinename}令牌
  4. RebuildOnAppStart =“true” - 因为这应该只发生一次
  5. 如果您正在使用Azure网络应用程序,并且负载平衡w /自动扩展您的前端工作人员,那么:

    1. useTempStorage = “同步”
    2. 使用此功能存储本地索引文件:http://issues.umbraco.org/issue/U4-7614
    3. 您必须拥有索引路径中的{machinename}令牌
    4. RebuildOnAppStart =“true” - 这样当新网站上线时,他们的索引就会建成
    5. ...是的,在某些情况下这可能不太理想,请参阅:https://our.umbraco.org/forum/extending-umbraco-and-using-the-api/74731-examine-corruption-issues#comment-244293