先说下我自己的环境:win2003 server+IIS6.0
看到坛子里有部分人和我一样的情况,在标签里使用{$IF 条件}{成立执行的代码}{不成立执行的代码}{/$IF}时,在前台页面中并没有达到自己想要的效果(具体的大家可以试试,这里不再赘叙)。
通过多方搜索,在KS_cls\Kesion.Label.FunctionCls.asp的文件第61行找到了如下正则代码:
-
regEx.Pattern = "\{\$IF([^\}]*)\}[^\{]*\{([^\}]*)\}[^\{]*\{([^\}]*)\}[^\{]*{/\$IF\}"
最开始怀疑是这个正则的问题,于是找了几个正则验证的软件来验证如下语句:
-
{$IF {@classname}="基础入门"}{基础}{“”}{/$IF}
验证的结果本身是没有问题的,是匹配的。但是这个语句格式会造成服务器上的w3wp.exe程序占用CPU达到99%,网页刷新后响应慢,最后提示超时错误。百度上搜索w3wp.exe占用率高的原因,就说是程序语句本身的问题造成IIS应用程序池无法释放内存等等。
如果把上面语句绿色部分取消了,也就是把{不成立执行的代码}取消的话就不会出现占用高的问题,但是又会出现开头说,会在前台页面中达不到自己想要的效果。
不知道这个if条件格式应该如何用呢,大家来说说。