事件的起因:
公司部署好的站点突然发现出了问题,经过一步步的查找(查找问题所在的艰辛只有自己知道 ),查源代码发现程序通过Response.Write 函数将html代码写到页面上,但是显示出来却不正确,开始的时候怀疑是程序员写的代码有问题,后来经领导指点,找了另外一台服务器测试,好使,这下范围缩小到了IIS、操作系统和.netFrameWork上(有时候系统问题的查找就是通过不断的尝试、缩小范围的过程)。
比较了一下好使的和不好使的服务器的差异,终于找到了,框架不一样,又不敢冒然在公司的服务器上尝试,装个虚拟机还原一下相关的环境吧(现在终于知道虚拟机的好了),虚拟机装好后,果然跟远程服务器上的现象一样,用事实证实了我的猜测。
第一步:卸掉.netFrameWork 4.5框架的所有东西。
第二步:安装.netFramework 4.0框架。
完成了,配置好站点再次运行程序(开启.net 4.0的程序池,在ISAPI和CGI 限制处允许4.0框架的操作),又出现了奇怪的现象,竟然提示我
HTTP 错误 404.17 – Not Found
请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
真是举步为艰呀,继续上网搜索问题,终于看明白了,告诉我是要配置IIS的“处理程序映射”
如下图
点击打开“处理程序映射”
点右键选择“添加脚本映射”
请求路径:* .aspx
可执行文件:c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
名称:PageHandlerFactory-ISAPI-4.0_32bit
再加一条
请求路径: *.aspx
可执行文件:c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
名称:PageHandlerFactory-ISAPI-4.0_64bit
然后再运行站点,好使了,
疑问
1:.netFramework为什么会将html解析的不正确,那以后我们怎么输入html代码
依照此过程在公司的外网站点上操作,.aspx页面好使了,其它的扩展名的页面也要添加相应的映象处理
如:*.ashx *.axd等等;
可执行文件都一样c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
名称最好找一个好使的机器一点点抄
最后:建议如果有条件还是重装系统,直接安装.netFramework4.0框架最安全