Weird, er, ah. That was the first time the blog's ever been down that I know of. I was posting remotely via BlogJet (the blogger API) and somehow the new dasBlog 1.6 Cache got out of whack. I recycled the Worker Process and deleted entryCache.xml, categoryCache, and blogdata.xml and I'm back.
奇怪,嗯。 据我所知,那是该博客第一次崩溃。 我是通过BlogJet (博客API)远程发布的,而新的dasBlog 1.6 Cache不知何故。 我回收了工作进程并删除了entryCache.xml,categoryCache和blogdata.xml,然后我回来了。
For those who care, here's the event log:
对于那些关心的人,这里是事件日志:
l2 time 2004-05-20T02:30:02 code 750 message <span>XSSUpstreamError:<br/>Collection was modified; enumeration operation may not execute.<br/> while processing at System.Collections.ArrayListEnumeratorSimple.MoveNext()
at newtelligence.DasBlog.Runtime.EntryIdCache.Build(DataManager data)
at newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager data)
at newtelligence.DasBlog.Runtime.BlogDataServiceXml.GetDateForEntry(String entryId)
at newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetCommentsFor(String entryId)
at newtelligence.DasBlog.Web.Services.SyndicationServiceImplementation.GetRssCore(String category, Int32 maxDayCount, Int32 maxEntryCount)
at newtelligence.DasBlog.Web.Services.XSSUpstreamer.Run().</span>
l2 time 2004-05-20T02:30:03 code 1 message <span>Error:<br/>System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
<br> at System.Collections.ArrayListEnumeratorSimple.MoveNext()
<br> at newtelligence.DasBlog.Runtime.EntryIdCache.Build(DataManager data)
<br> at newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager data)
<br> at newtelligence.DasBlog.Runtime.BlogDataServiceXml.GetDateForEntry(String entryId)
<br> at newtelligence.DasBlog.Runtime.BlogDataServiceXml.InternalGetEntry(String entryId)
<br> at newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetEntry(String entryId)
<br> at newtelligence.DasBlog.Web.Core.SharedBasePage.SetupPage(Object o, EventArgs e)
<br> at System.EventHandler.Invoke(Object sender, EventArgs e)
<br> at System.Web.UI.Control.OnInit(EventArgs e)
<br> at newtelligence.DasBlog.Web.PermaLink.OnInit(EventArgs e)
<br> at System.Web.UI.Control.InitRecursive(Control namingContainer)
<br> at System.Web.UI.Page.ProcessRequestMain()<br/> while processing http://www.hanselman.com/blog/PermaLink.aspx?guid=b849dcaa-81f0-4733-9fff-f7399fb6ed01.</span>
l2时间2004-05-20T02:30:02代码750消息<span> XSSUpstreamError:<br/>集合已修改; 枚举操作可能无法执行。<br/>在System.Collections.ArrayListEnumeratorSimple.MoveNext()处进行处理时在newtelligence.DasBlog.Runtime.EntryIdCache.Build(DataManager数据) 在newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager数据) 在newtelligence.DasBlog.Runtime.BlogDataServiceXml.GetDateForEntry(String entryId) 在newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetCommentsFor(String entryId) 在newtelligence.DasBlog.Web.Services.SyndicationServiceImplementation.GetRssCore(字符串类别,Int32 maxDayCount,Int32 maxEntryCount) 在newtelligence.DasBlog.Web.Services.XSSUpstreamer.Run()。</ span> l2时间2004-05-20T02:30:03代码1消息<span>错误:<br/> System.InvalidOperationException:集合已修改; 枚举操作可能无法执行。 <br>在System.Collections.ArrayListEnumeratorSimple.MoveNext()处<br>在newtelligence.DasBlog.Runtime.EntryIdCache.Build(DataManager数据)处<br>在newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager数据)处<br>在newtelligence.DasBlog.Runtime.BlogDataServiceXml.GetDateForEntry(String entryId) <br>在newtelligence.DasBlog.Runtime.BlogDataServiceXml.InternalGetEntry(String entryId) <br>在newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetEntry(String entryId) <br>在newtelligence.DasBlog.Web.Core.SharedBasePage.SetupPage(对象o,EventArgs e) <br>在System.EventHandler.Invoke(对象发送者,EventArgs e) <br>在System.Web.UI.Control.OnInit(EventArgs e) <br> at newtelligence.DasBlog.Web.PermaLink.OnInit(EventArgs e) <br> System.Web.UI.Control.InitRecursive(控件namingContainer) <br>在处理http://www.hanselman.com/blog/PermaLink.aspx?guid=b849dcaa-81f0-4733-9fff-f7399fb6ed01时位于System.Web.UI.Page.ProcessRequestMain()<br/>上。 / span >
then some
然后一些
l2 time 2004-05-20T02:30:05 code 1 message <span>Error:<br/>System.ArgumentNullException: Value cannot be null.
<br>Parameter name: value
<br> at System.Web.Caching.CacheEntry..ctor(String key, Object value, CacheDependency dependency, CacheItemRemovedCallback onRemovedHandler, DateTime utcAbsoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, Boolean isPublic)
<br> at System.Web.Caching.CacheInternal.DoInsert(Boolean isPublic, String key, Object value, CacheDependency dependencies, DateTime utcAbsoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback, Boolean replace)
<br> at System.Web.Caching.Cache.Insert(String key, Object value, CacheDependency dependencies)
<br> at newtelligence.DasBlog.Runtime.EntryIdCache.Load(DataManager data)
<br> at newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager data)
<br> at newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetDaysWithEntries(TimeZone tz)
<br> at newtelligence.DasBlog.Web.Core.WeblogCalendar.WeblogCalendar_Load(Object sender, EventArgs e)
<br> at System.Web.UI.Control.OnLoad(EventArgs e)
<br> at System.Web.UI.Control.LoadRecursive()
<br> at System.Web.UI.Control.LoadRecursive()
<br> at System.Web.UI.Control.LoadRecursive()
<br> at System.Web.UI.Control.LoadRecursive()
<br> at System.Web.UI.Page.ProcessRequestMain()<br/> while processing http://www.hanselman.com/blog/Default.aspx.</span>
l2时间2004-05-20T02:30:05代码1消息<span>错误:<br/> System.ArgumentNullException:值不能为null。 <br>参数名称:值<br>在System.Web.Caching.CacheEntry..ctor(字符串键,对象值,CacheDependency依赖项,CacheItemRemovedCallback onRemovedHandler,DateTime utcAbsoluteExpiration,TimeSpan slideExpiration,CacheItemPriority优先级,Boolean isPublic) <br>在System.Web.Caching.CacheInternal.DoInsert(布尔isPublic,字符串键,对象值,CacheDependency依赖项,DateTime utcAbsoluteExpiration,TimeSpan slideExpiration,CacheItemPriority优先级,CacheItemRemovedCallback onRemoveCallback,布尔值替换) <br>在System.Web.Caching.Cache.Insert(字符串键,对象值,CacheDependency依赖项) <br>在newtelligence.DasBlog.Runtime.EntryIdCache.Load(DataManager数据)处<br>在newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager数据)处<br>在newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetDaysWithEntries(TimeZone tz) <br>在newtelligence.DasBlog.Web.Core.WeblogCalendar.WeblogCalendar_Load(对象发送者,EventArgs e) <br>在System.Web.UI.Control.OnLoad(EventArgs e) <br>在System.Web.UI.Control.LoadRecursive()处<br>在System.Web.UI.Control.LoadRecursive()处<br>在System.Web.UI.Control.LoadRecursive()处<br>在System.Web.UI.Control.LoadRecursive()处<br>在处理http://www.hanselman.com/blog/Default.aspx时位于System.Web.UI.Page.ProcessRequestMain()<br/> 。 </ span >
then a whole lot of...
那么很多...
l2 time 2004-05-20T02:35:03 code 1 message <span>Error:<br/>System.ArgumentNullException: Value cannot be null.
<br>Parameter name: value
<br> at System.Web.Caching.CacheEntry..ctor(String key, Object value, CacheDependency dependency, CacheItemRemovedCallback onRemovedHandler, DateTime utcAbsoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, Boolean isPublic)
<br> at System.Web.Caching.CacheInternal.DoInsert(Boolean isPublic, String key, Object value, CacheDependency dependencies, DateTime utcAbsoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback, Boolean replace)
<br> at System.Web.Caching.Cache.Insert(String key, Object value, CacheDependency dependencies)
<br> at newtelligence.DasBlog.Runtime.EntryIdCache.Load(DataManager data)
<br> at newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager data)
<br> at newtelligence.DasBlog.Runtime.BlogDataServiceXml.GetDateForEntry(String entryId)
<br> at newtelligence.DasBlog.Runtime.BlogDataServiceXml.InternalGetEntry(String entryId)
<br> at newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetEntry(String entryId)
<br> at newtelligence.DasBlog.Web.Core.SharedBasePage.SetupPage(Object o, EventArgs e)
<br> at System.EventHandler.Invoke(Object sender, EventArgs e)
<br> at System.Web.UI.Control.OnInit(EventArgs e)
<br> at newtelligence.DasBlog.Web.PermaLink.OnInit(EventArgs e)
<br> at System.Web.UI.Control.InitRecursive(Control namingContainer)
<br> at System.Web.UI.Page.ProcessRequestMain()<br/> while processing http://www.hanselman.com/blog/PermaLink.aspx?guid=6083af1e-42c1-4d54-a33d-a5bef622a503.</span>
l2时间2004-05-20T02:35:03代码1消息<span>错误:<br/> System.ArgumentNullException:值不能为null。 <br>参数名称:值<br>在System.Web.Caching.CacheEntry..ctor(字符串键,对象值,CacheDependency依赖项,CacheItemRemovedCallback onRemovedHandler,DateTime utcAbsoluteExpiration,TimeSpan slideExpiration,CacheItemPriority优先级,布尔值isPublic) <br>在System.Web.Caching.CacheInternal.DoInsert(布尔isPublic,字符串键,对象值,CacheDependency依赖项,DateTime utcAbsoluteExpiration,TimeSpan slideExpiration,CacheItemPriority优先级,CacheItemRemovedCallback onRemoveCallback,布尔值替换) <br>在System.Web.Caching.Cache.Insert(字符串键,对象值,CacheDependency依赖项) <br>在newtelligence.DasBlog.Runtime.EntryIdCache.Load(DataManager数据)处<br>在newtelligence.DasBlog.Runtime.EntryIdCache.Ensure(DataManager数据)处<br>在newtelligence.DasBlog.Runtime.BlogDataServiceXml.GetDateForEntry(String entryId) <br>在newtelligence.DasBlog.Runtime.BlogDataServiceXml.InternalGetEntry(String entryId) <br>在newtelligence.DasBlog.Runtime.BlogDataServiceXml.newtelligence.DasBlog.Runtime.IBlogDataService.GetEntry(String entryId) <br>在newtelligence.DasBlog.Web.Core.SharedBasePage.SetupPage(对象o,EventArgs e) <br>在System.EventHandler.Invoke(对象发送者,EventArgs e) <br>在System.Web.UI.Control.OnInit(EventArgs e) <br>在newtelligence.DasBlog.Web.PermaLink.OnInit(EventArgs e) <br> System.Web.UI.Control.InitRecursive(控件namingContainer) <br>在处理http://www.hanselman.com/blog/PermaLink.aspx?guid=6083af1e-42c1-4d54-a33d-a5bef622a503时位于System.Web.UI.Page.ProcessRequestMain()<br/>上。 / span >
Looks like some schmutz around the small cached portion of the Xml Data Store is corrupt, there's no Assert() or check for null and null is inserted into the in memory ASP.NET cache? The first dump shows EntryIdCache freaking out, then the other cache didn't stand a chance. Looks like maybe the Radio Upstream happened JUST as I was sending data in via the Blogger API?
看起来Xml数据存储的小型缓存部分周围的某些schmutz已损坏,没有Assert()或没有检查null并将null插入到内存中的ASP.NET缓存中吗? 第一个转储显示EntryIdCache吓坏了,然后另一个缓存没有机会。 好像刚通过Blogger API发送数据时发生了Radio Upstream吗?
翻译自: https://www.hanselman.com/blog/weirdfirst-time-my-blogs-been-down-well-ever