ksxt问题集之——“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理”

          在考试系统Demo的IIS6.0发布中,遇到了各种发布不成功的例子。有的是操作系统不同导致的IIS版本不一致引发的问题,如http://blog.csdn.net/zuozuo1245/article/details/41877131 (Win8/8.1中的IIS8.5),有的是IIS默认设置有问题等。

          下面我的这个问题可能大家使用IIS发布过程中有很大概率会遇到,在此希望能对大家有所帮助。

          先看错误截图,有图有真相~

          ksxt问题集之——“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理”_第1张图片ksxt问题集之——“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理”_第2张图片

          

         “HTTP 错误 404.17 - Not Found   请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。”

          出现这个问题,很可能是IIS里的“ISAPI或CGI限制”这一块的配置出现了问题,“ISAPI” 是供IIS加载和调用的DLL, 如果没配置相关的ISAPI,就无法正确地解释网页的内容。最终导致IIS默认把文件当作静态文件来处理了。

      也就是说,我们用.NET 4.0来开发网站,但ISAPI没配置有"ASP.Net_4.0_32bit"的dll文件来对页面程序进行托管,那么IIS就无法正确的运行aspx里的C#代码。

           

           解决方案:

           1、先查看我们IIS里用的.NET Framework框架是什么版本的,我这里默认的是2.0,要改成4.0,如图:

            ksxt问题集之——“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理”_第3张图片


           2、再看我们IIS的“应用程序池”里要发布的网站的版本,我这里也是2.0,改成4.0的,如图:

                                                    ksxt问题集之——“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理”_第4张图片


                                                         ksxt问题集之——“请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理”_第5张图片

           3、进行一下浏览网站测试,看看是否成功了,如果不成功,我们继续进行以下操作:

           这里是对ISAPI的配置:

           3.1选中网站->功能视图-> 双击 ISAPI筛选器,然后查看是否有与网站所基于的framework 对应的dll文件。.NET2.0,3.0,3.5对应的dll是ASP.Net_2.0.50727.0, net4.0是ASP.Net_4.0_32bit或ASP.Net_4.0_64bit;

           3.2若没有对应的DLL,有可能是没装好IIS,即漏掉了东西,如果不知选择装哪些部分,就应该完整的把整个IIS装完;

          4、如果装了VS再装IIS必须得对.NET Framework 重装一次, 运行cmd,输入:C:\Windows\Microsoft.NET\Framework\V4.0.30319\aspnet_regiis -i    注:这个是 .NET Framework安装对应的路径。

           以上操作可以解决大部分此类问题。对于IIS发布的问题还涉及到了权限控制、配置文件生成冗余等,就不一一列举了,大家多看看帮助文档、查查网上的资料吧~

你可能感兴趣的:(考试系统)