Umbraco:Azure Web 应用程序上的意外网络错误
Umbraco: An unexpected network error on Azure Web Apps
我们有一个托管在 Azure Web Apps 上的 Umbraco 网站(版本 7.5.11)。
我们间歇性地遇到以下异常(过去 3 周内 3 次)。一旦发生异常,它就会关闭网站,直到我们在 Umbraco 中重新发布主节点。在所有其他时间网站都按预期工作,包括从服务器检索图像文件。
异常类型:IOException
异常消息:出现意外的网络错误。 at Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey, Func1 getCacheItem, Nullable1 timeout, Boolean isSliding, CacheItemPriority priority, CacheItemRemovedCallback removedCallback, CacheDependency dependency) at Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey, Func1 getCacheItem, Nullable1 timeout, Boolean isSliding, CacheItemPriority 优先级, 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 ) 在 Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetUmbracoMedia(Int32 id) 在 Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetById(UmbracoContext umbracoContext, Boolean preview, Int32 nodeId) 在 Umbraco.Web.PublishedCache.ContextualPublishedCache1.GetById(Boolean preview, Int32 contentId) 在 Umbraco.Web.PublishedContentQuery.DocumentById(Int32 id,ContextualPublishedCache 缓存,对象 ifNotFound)在 Umbraco.Web.PublishedContentQuery.Media(Int32 id)在 Umbraco.Web.UmbracoHelper.Media(字符串 id)
媒体文件存在,重新发布主节点使站点恢复在线。
发生异常时,Umbraco 内未部署任何代码更改,也未更新/发布任何页面。
有没有人经历过类似的事情,或者知道根本原因是什么?
根据PublishedMediaCache.cs的源码,异常一般是由以下问题引起的
检查索引是否损坏。
umbraco 论坛上有一个与您的问题相关的帖子。
和 here is the solution 来自@Shannon Deminick 的这个问题。
如果您使用的是 Azure 网络应用程序并且没有自动缩放,您应该使用这些设置:
- useTempStorage="Sync"
- 使用此功能存储本地索引文件:http://issues.umbraco.org/issue/U4-7614
- 从您的索引路径中删除 {machinename} 标记
- RebuildOnAppStart="true" - 因为这应该只发生一次
如果您使用的是 Azure Web 应用程序并且正在使用自动缩放前端工作人员进行负载平衡,那么:
- useTempStorage="Sync"
- 使用此功能存储本地索引文件:http://issues.umbraco.org/issue/U4-7614
- 您的索引路径中必须有 {machinename} 标记
- RebuildOnAppStart="true" - 这样当新网站上线时,它们的索引就会被建立
- ...是的,在某些情况下这可能并不理想,请参阅:https://our.umbraco.org/forum/extending-umbraco-and-using-the-api/74731-examine-corruption-issues#comment-244293
我们有一个托管在 Azure Web Apps 上的 Umbraco 网站(版本 7.5.11)。
我们间歇性地遇到以下异常(过去 3 周内 3 次)。一旦发生异常,它就会关闭网站,直到我们在 Umbraco 中重新发布主节点。在所有其他时间网站都按预期工作,包括从服务器检索图像文件。
异常类型:IOException
异常消息:出现意外的网络错误。 at Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey, Func1 getCacheItem, Nullable1 timeout, Boolean isSliding, CacheItemPriority priority, CacheItemRemovedCallback removedCallback, CacheDependency dependency) at Umbraco.Core.Cache.HttpRuntimeCacheProvider.GetCacheItem(String cacheKey, Func1 getCacheItem, Nullable1 timeout, Boolean isSliding, CacheItemPriority 优先级, 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 ) 在 Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetUmbracoMedia(Int32 id) 在 Umbraco.Web.PublishedCache.XmlPublishedCache.PublishedMediaCache.GetById(UmbracoContext umbracoContext, Boolean preview, Int32 nodeId) 在 Umbraco.Web.PublishedCache.ContextualPublishedCache1.GetById(Boolean preview, Int32 contentId) 在 Umbraco.Web.PublishedContentQuery.DocumentById(Int32 id,ContextualPublishedCache 缓存,对象 ifNotFound)在 Umbraco.Web.PublishedContentQuery.Media(Int32 id)在 Umbraco.Web.UmbracoHelper.Media(字符串 id)
媒体文件存在,重新发布主节点使站点恢复在线。
发生异常时,Umbraco 内未部署任何代码更改,也未更新/发布任何页面。
有没有人经历过类似的事情,或者知道根本原因是什么?
根据PublishedMediaCache.cs的源码,异常一般是由以下问题引起的
检查索引是否损坏。
umbraco 论坛上有一个与您的问题相关的帖子。
和 here is the solution 来自@Shannon Deminick 的这个问题。
如果您使用的是 Azure 网络应用程序并且没有自动缩放,您应该使用这些设置:
- useTempStorage="Sync"
- 使用此功能存储本地索引文件:http://issues.umbraco.org/issue/U4-7614
- 从您的索引路径中删除 {machinename} 标记
- RebuildOnAppStart="true" - 因为这应该只发生一次
如果您使用的是 Azure Web 应用程序并且正在使用自动缩放前端工作人员进行负载平衡,那么:
- useTempStorage="Sync"
- 使用此功能存储本地索引文件:http://issues.umbraco.org/issue/U4-7614
- 您的索引路径中必须有 {machinename} 标记
- RebuildOnAppStart="true" - 这样当新网站上线时,它们的索引就会被建立
- ...是的,在某些情况下这可能并不理想,请参阅:https://our.umbraco.org/forum/extending-umbraco-and-using-the-api/74731-examine-corruption-issues#comment-244293