zoukankan      html  css  js  c++  java
  • 成功将BlogEngine 1.5 升级到了BlogEngine 2.0

    使用BlogEngine.Net博客系统有两年时间了。官方的最新版本已经出到了2.5。但它是基于.net4.0的。也就是说服务器必须安装.net4.0,运行环境必须选择4.0。出于移植性的考虑。我决定将我的博客升级到2.0。BlogEngine.Net2.0是继续.net2.0的。虽说必须安装.net 3.5,但毕竟运行环境还是2.0。

    由于BlogEngine.Net是英文版本的,对本地化做的还不够,所以在很久以前我就选择了博易www.blogyi.net作为自己的博客程序。大家可以到博易官方去下载最新版http://www.blogyi.net/download/。这里是博易和BlogEngine.net的版本对照http://www.blogyi.net/download/release-mapping/

    我原先使用的是博易1.9版本,也就是对应BlogEngine.NET的1.5版本。

    其实升级非常的简单,方法如下:

    1.登录旧版本博客后台,导出BlogML.xml(备用)毕竟没有不是不同博客程序的转换,所以相对比较简单,只要导出备份文件即可。待用。

    2.备份旧版本博客App_Data目录下的file文件夹,这个文件夹是存储博客图片以及文件的文件夹,待用。当然最好还是备份整个App_Data目录,如果升级不成功还可以还原。

    3.备份整个旧博客(不是必须的,但可以防万一)。

    4.下载博易博客http://www.blogyi.net/download/ 首先下载BlogYi.NET v2.0 源程序压缩包文件 5,992KB ,BlogYi.NET v2.0 源程序压缩包文件 5,992KB (源码不是必须的,在后面我会提到为什么要下载源码)

    5.上传BlogYi.Net2.0程序,上传后边可以输入网址运行。

    6.还原数据,登录新博客后台,找到 设置->导入&导出 将先前备份好的BlogML.xml导入。如果顺利,那么你的博客就升级完毕了。

    但是虽然说已经升级完毕,随之带来的问题却不小。如果你小心留意你会发现升级完毕后的文章的显示地址发生了变化。在旧版本的博客中默认命名博客文章地址是域名+时间日期+文章标题的UrlEncode编码+.aspx,新版本却使用了域名+时间日期+文章标题的HtmlEncode+.aspx。这看上去是一个很小的问题,但他会大大缩减你博客的访问量。这是为什么呢,这因为博客的流量大多来自搜索引擎,搜索引擎收纳的是博客的链接地址,链接地址发生了变化,那么就没办法使用原先被搜索引擎收纳的地址。以前的文章就变成了空地址。怎么解决这个问题呢?这就需要用到博客的源码了。

    方法如下:

    1.用VS2010打开项目源码,找到BlogYi.Net-2.0-Source\BlogEngine\DotNetSlave.BusinessLogic\Utils.cs

    找到

     

    public static string RemoveIllegalCharacters(string text)
    {
    	if (string.IsNullOrEmpty(text))
    				return text;
    
    			text = text.Replace(":", string.Empty);
    			text = text.Replace("/", string.Empty);
    			text = text.Replace("?", string.Empty);
    			text = text.Replace("#", string.Empty);
    			text = text.Replace("[", string.Empty);
    			text = text.Replace("]", string.Empty);
    			text = text.Replace("@", string.Empty);
    			text = text.Replace("*", string.Empty);
    			text = text.Replace(".", string.Empty);
    			text = text.Replace(",", string.Empty);
    			text = text.Replace("\"", string.Empty);
    			text = text.Replace("&", string.Empty);
    			text = text.Replace("'", string.Empty);
    			text = text.Replace(" ", "-");
    			text = RemoveDiacritics(text);
    			text = RemoveExtraHyphen(text);
    
    			return HttpUtility.HtmlEncode(text)
    .Replace("%", string.Empty);
    		}

    return HttpUtility.HtmlEncode(text).Replace("%", string.Empty);

    改为

    return HttpUtility.UrlEncode(text).Replace("%", string.Empty);

    然后重新编译BlogEngine.Core项目,上传替换BlogEngine.Core.dll。

    这就解决了升级后,博客文章链接地址发生变化的问题。

  • 相关阅读:
    创业指南:如何实现打工族的老板梦
    在C#中压缩解压缩文件(适合.Net1.x)
    35岁之前成功的12条黄金法则
    郑州DOTNET俱乐部《DotNet实战之旅》活动邀请
    1baiwan.com你能走多远?(原创,请任意转载,作者:小张.net)
    MongoDB实战开发 【零基础学习,附完整Asp.net示例】
    TFS2010强制撤签锁定项
    持续集成理论和实践的新进展
    JQuery最佳实践
    IE下实现全屏两方法
  • 原文地址:https://www.cnblogs.com/AlexCheng/p/2119991.html
Copyright © 2011-2022 走看看