关于“msxml3.dll (0x800C0005)系统未找到指定的资源”的另一解决方案

今天学院的首页拉取天气预报的地方出现了“msxml3.dll (0x800C0005)系统未找到指定的资源”的错误提示,在自习室就被叫回来紧急处理,在从教学楼往宿舍走的路上用手机Google了下可能的出错原因,大部分都是说msxml3这个组件有问题,但是因为服务器之前运行一直好好的,所以我不认为是这个地方出现错误。

回到宿舍打开电脑通过VPN拨入学院的校园网,远程连入www服务器,上来先把wwwroot(网站的根目录)按照时间进行排序,看看有没有故障前后修改的文件。这样做有多个好处:
1)避免因为其他人的误操作而造成代码上的错误,想想看,把服务器检查个底朝天,最后发现是有人修改页面的时候不小心改错了行代码,我相信你会哭死吧。
2)能迅速的发现网站服务器是否被人插入恶意代码从而造成的页面访问不正常,一般的Hacker都不会注意到挂马之后被挂马文件的时间属性,从这里也能快速定位可能出现的故障原因。

可是检查下来发现上面的都不是出错原因,这时我的职业敏感性让我想到会不会是提供天气信息的那个页面出现了问题,从服务器上访问腾讯天气页面,果然,找不到服务器,在cmd下使用ping命令拼打不开的那个页面,发现根本无法解析地址,果断使用nslookup命令从Google public dns上获取解析地址,之后修改hosts文件,完成本地解析,重新打开网页,故障解决。

总结:
有时候不要被系统给出的提示信息所迷惑,而且搜索引擎提供的别人遇到的解决方案仅仅只能用于参考,切不要在没搞清楚状况之前就贸然下手。最后我要强调,培养职业敏感性很重要,多看多实践多思考,是培养职业敏感性最佳方法。

 

关于asp,aspx页面空白(乱码)的解决方法

有时候明明写好了程序,可是访问时一片空白,而查看源文件发现要进行输出显示的内容已经在源文件中了,这是怎么一回事?多数情况下,这是由于编码造成的问题,比如页面的文件编码跟在html中指定的编码不一致,比如从数据库读取过来的数据编码跟前台显示的不一致,而如果你认为都一致啦,但是他还是不显示,怎么办呢?试试在文件头部加上如下的语句吧!

To Asp:

[codesyntax lang=”asp”]

<%Session.CodePage=65001%>
'此外还有下面的这些常用编码
<%@ codepage=936%>简体中文
<%@ codepage=950%>繁体中文
<%@ codepage=65001%>UTF-8

[/codesyntax]

To Aspx:

[codesyntax lang=”csharp”]

Session.CodePage = Codepage

Codepage取值如下:
0 = UTF-8
874 = Thai Windows
1252 = American English
932 = Japanese

[/codesyntax]

w3wp.exe进程CPU占用高的解决办法

近期学院首页服务器经常出现w3wp.exe进程访问量占到99%的 现象,百度后了解原因为代码中存在死循环,前几天一直没有想到方法查找哪个文件出了问题,今天参加同学聚会,喝了点小酒,突然想到一个方法:将学院主页及 各教学系部的网站都尽量跑在独立的空间(资源池),让其之间不会相互影响。但是这样得有一个前提条件,就是IIS访问“虚拟目录”的优先级必须大于实际目 录的优先级。
举例来说,假设根目录/下有一个实际的文件夹Kaisir,以及一个虚拟目录Kaisir,那我们从浏览器中访问/Kaisir,是访问的虚拟目录还是实际目录呢?经试验,是优先访问的虚拟目录。这样就为我接下来的测试奠定了基础。
接下来,我建立了一系列的资源池,首 先将网站“主站部分”与“系科设置”部分分开,放入两个不同的资源池,等到一会CPU占用飙高,通过一个命令“iisapp -a”可以显示出每个“资源池”与“w3wp.exe”进程的对应关系,通过对应关系,可以判断是主站的代码出了问题,还是下面各教学系的代码出现问题。


通过iisapp -a 查看对应关系,发现是“系科设置”这个目录下的文件造成了w3wp.exe占用99%的问题(这里我舒了一口气……嘿嘿 我看来我修正惠新的代码质量还是挺高的 :) 嘿嘿 )接下来,我就按照教学系建立资源池与虚拟目录,再次通过iisapp -a查看对应关系,终于发现了是“gmx”这个夹子内的代码出现问题,尝试访问,发现一直都打不开,而且服务器w3wp.exe占用率再次飙升到 100%。暂时取消掉这个虚拟目录的asp执行权限,并强制结束这个w3wp.exe进程(这是利用虚拟目录与资源池的一大好处:可以随意的结束掉死掉的 进程而不用担心会影响其他站点的访问。当然最后我会总结) 继续阅读“w3wp.exe进程CPU占用高的解决办法”

学院新网站上线&技巧总结

sdyu

经过了Kaisir我接近10个小时的努力,学院新版的网站终于如期上线了。各种酸甜只有自己知道啊。别人提供的样式,我来负责具体实现,今天这十个小时我做了左边的这个Flash展示,中间部分调用新闻的程序代码,上面跟下面的导航,天气预报的抓取,给Banner的Flash添加链接,甚至还有中途被中止的查询页面~~~虽然很辛苦,但总的来说,收获也颇丰哇哇~~下面我就来总结一下吧。

(一)导航

说起这个导航那真是费了很多的时间,一开始拿到的样式是没有下拉菜单的,那人只是很简单的做了一个table就把所有的东西放进去了,甚至连单元格都吝啬于使用,我拿到这个样式,首先就把他原来的导航给删掉了,后来使用了各种各样的方法来做这个导航,比如Dreamware自己用层加动作做,比如使用了“123 Flash Menu”来做Flash菜单,这些都不尽人意,特别是那个flash菜单,竟然挡住了我下方的链接..(后来才知道是我给这个flash加了一个参数,后文会提到)最后还是使用“Sothink DHTML Menu”来做的~~这个软件真的是很赞,越用越顺手哇~~哈哈..最后你看到的效果,就是上图中导航栏所示的效果了~~

(二)天气

这是我想要重点来讲的一个地方。虽然在页面中显示出来的天气只有那么短短的一行都不到的内容,可是后台支持的代码却很多,也是我个人认为这个站点中最具有技术含量的地方~~~下面我把代码贴出来,供大家参考。程序参考了“无情”的代码。

weather.asp

之后只需要在调用天气的地方使用:

就可以得到文本显示的天气了,效果如本文开始的附图。

在这我想说一下,也许接触过抓取的同学会觉得这种想法很Easy,对的,我之前用java写过一个抓取校内日志的小程序,结构跟这个几乎一样~~~哈哈 突然想起老师们常常喜欢说的一句话“万变不离其宗。”

(三)Banner

接下来我想说说Banner,其实不是说Banner,而是说给Banner加上超链接,或许有人说这个很简单啊,直接加上不就好了,是啊,可惜我们的Banner是Flash的,而且做得时候还没有把链接做进去~~

后来,我从网上找到一种实现的方法,是通过<button>控件来实现的,代码如下:

我这样实验了一下,却发现这样并不能成功的实现跳转,点了没反应,后来又查资料,发现必须给Flash增加下面这个属性:

<param name=”wmode” value=”Opaque”> 

增加了这个以后,成功给flash添加了链接~~