[公告]代码着色功能的一个Bug

    首先非常感谢 木野狐发现这个Bug, 这个Bug存在这么久,  我竟然没发现! emembarrassed.gif
    Bug现象:
    当插入代码时,如果代码中含有a["b"]这种形式的代码,就会造成asp.net进程占用100% CPU, 如果是IIS 6, 会引起IIS重启进程,出现“ Service Unavailable”的错误。 博客园以前出现的“ Service Unavailable”可能就是这个Bug引起的。
    原因:
    是一个将空格转换成“ ”的正则表达式引起的。 正则表达式代码如下:
              
public static string ReplaceSpace( string content)
{
string findstr = " (?<fore>(?:(?:[^< ])*(?:<(?:!--(?:(?:[^-])*(?:(?=-->)|-))*--|(?:[^>])+)>)?)*)[ ](?<back>(?:(?:[^< ])*(?:<(?:!--(?:(?:[^-])*(?:(?=-->)|-))*--|(?:[^>])+)>)?)*) " ;
string replacestr = " ${fore}&nbsp;${back} " ;
string targetstr = System.Text.RegularExpressions.Regex.Replace(content,findstr,replacestr,System.Text.RegularExpressions.RegexOptions.IgnoreCase);
return targetstr;
}


    这个正则表达式是一位朋友提供的,主要功能是将字符串中非htmt标记中的空格转换成“&nbsp;”, 目前我还没查出这个正则表达式中的问题,请熟悉正则表达式的朋友指点。
    临时解决方法:禁用该正则表达式。这会影响代码行之前的空格显示。
    另外,给代码着色功能增加了两个选项:1、是否显示行号 2、是否使用代码折叠

    注:请使用CNBlogs DotText 1.0 Beta 2 的朋友注意该问题。
   

转载于:https://www.cnblogs.com/dudu/archive/2005/04/20/141031.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值