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

    首先非常感谢木野狐发现这个Bug, 这个Bug存在这么久,  我竟然没发现!
    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 的朋友注意该问题。
   

posted @   dudu  阅读(3142)  评论(18编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示