立即发现了BlogEngine.net 1.4.5 一个严重的 bug

by Miller 2008/8/1 18:21

刚刚升级完成,以为一切顺利,但是在我的本地运行正常的 1.4.5 上传到主机之后,RSS 订阅出现错误,检查之后发现 1.4.5 在处理 RSS 的时候,多了一项内容最后修改时间的通知,但是就是因为增加了这一项通知而导致错误,仔细检查调用的地方,发现错误来自于没有对服务器时区偏移进行处理。由于我的主机和国内的时差是15小时,在通知时间的时候这个时间超出了服务器的时间,导致错误。这个错误会发生在所有服务器时差设置值为正数的情况下。

解决方法也简单,修改内核,找到 \BlogEngine.Core\Web\HttpHandlers\SyndicationHandler.cs 里面 SetHeaderInformation 这个函数,将函数的第二行:

   foreach (IPublishable item in items)
   {
        if (item.DateModified > lastModified)
          lastModified = item.DateModified;
   }

改成

   foreach (IPublishable item in items)
   {
        if (item.DateModified.AddHours(-BlogSettings.Instance.Timezone) > lastModified)
          lastModified = item.DateModified.AddHours(-BlogSettings.Instance.Timezone);
   }

就能正确处理时区问题了。

该修正不属于MOD的内容,没有包含在刚才提供的MOD中,如果你无法修改内核但又希望解决这个bug,请留言,我发送一个修改过的内核 DLL 给你。

当前评分 3.4 , 共有 7 人参与

  • Currently 3.428572/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

关键字: ,

BlogEngine.net

添加评论


(将显示你的Gravatar图标)  

biuquote
  • 评论
  • 在线预览
Loading



Powered by BlogEngine.NET 1.4.5.0
Theme by Miller

订阅提示

除了利用网页最顶部的“订阅”链接订阅整个博客之外,还可以针对某一个分类进行订阅,你只需点击具体分类旁边的RSS图标,即可订阅该分类

也可单独订阅某一篇文章的评论,在每一篇文章的右下角就有订阅按钮。现在就试试看吧!

复制RSS图标所指向的链接,利用专门的RSS阅读器订阅并阅读,会更方便哦!

除了RSS订阅,还能进行邮件订阅,当有新文章发表时,会向登记的邮件地址发送通知,这样即使没有时间查看RSS阅读器,也能通过邮件得知最新发表的文章的概述。重复输入已登记的邮件地址可以退订邮件通知。

最新评论

订阅评论