早就看到有前辈在项目开发中使用blog作为团队交流沟通与共享信息的工具,而我们今天终于把.Text系统架在了项目组内部(感谢开心就好提供的关键帮助:Handler Patterns.txt),我个人感觉blog确实是团队成员之间进行良好沟通和信息共享的平台。

顺手去了.Text的几个bug:

  1. OPML.aspx使用DNW_Stats来取得所有的blogger列表,纯属偷懒。DNW_Stats是用来取得更新排行的存储过程,如果系统里的blogger没有发表随笔的话,DNW_Stats什么也取不到(PostCount>0)。为此添加一个新的存储过程DNW_OPML:

    create procedure dbo.DNW_OPML
    as
      select
        Title, Host, Application
      from
        blog_config

    并修改OPML.aspx.cs让它使用这个存储过程:

    string sql = "DNW_OPML";

  2. 还是这个文件,它写出来的XML中声明的encoding(utf-16)和Response的encoding(utf-8)不一致,这会导致某些浏览器报错(说不能进行编码转换)。

    原因是代码中使用了StringWriter作为XmlTextWriter的内部写入器,而StringWriter只能写入Unicode(UTF-16)编码的内容,因此XmlTextWriter会自动将写入的的encoding声明为utf-16。


    解决的办法是使用XmlTextWriter(Stream, Encoding)构造器构造Xml写入器,直接传入Response.OutputStream和System.Text.Encoding.UTF8,这样生成的Xml结果才会包含正确的encoding声明。

    虽然不是什么大问题,在大多数情况下也可以正常使用,但这的确是一个很错误的做法。.Text的MainFeed同样存在这样的问题,就不赘述。