zoukankan      html  css  js  c++  java
  • .Net网站不能预编译以及不能请求的调试过程

    公司内部的一个网站,Aspx的,最近莫名其妙的出现一个问题:

    file 'soLog.aspx' has not been pre-compiled,and cannot be requested.

      这个问题只有在网站发布到服务器之后才会出现,本地一切正常,但不是每一个页面都有这一个问题,部分页面可以正常使用,于是把本地的网页重新编译之后再次发布到服务器,结果还是不行,一会儿是页面A有这个问题,一会儿是页面B有这个问题,网上都说是由于少了一些DLL文件或者是没有引用的缘故,可是我项目里面根本都没有用到什么第三方控件,都是MS自带的东西;于是我把服务器上面虚拟目录里面的Bin文件全部干掉,然后我重新发布项目,悲催的是问题依旧。

      仔细检查了服务器上面的虚拟目录,发现Bin里面有一些这样的文件“页面名称.aspx.cdcab7d2.compiled”,每一个页面对应这么一个文件,猜想应该是发布网站之后生成的编译文件,是不是这个文件引起异常的呢?不试一下也不知道,于是我在发布网站的时候勾选了“允许更新此编译站点”的选项,如下图:

    然后重新编译,重新发布网站,依然是将服务器上面所有的Bin文件全部杀掉,发布之后发现没有aspx.cdcab7d2.compiled这种文件了,为了防止出现其它的异常,我把应用程序池重启了一下,刷新页面,意想不到的结果出来了----OK了。难道真的是这个原因吗?

      但是这样做也有问题,如果勾选了“允许更新此编译站点”的选项,那么发布的网站安全性非常差,除了所有的CS文件编译成为一个DLL文件之外,其它的文件和原来的没有任何变化,原来是什么现在就是什么,通过记事本打开可以看到里面的代码以及HTML代码等,我们可以将两个文件打开互相比较一下,

    这个文件是以“不允许更新此编译站点”的方式发布之后的:

    这个文件是以“允许更新此编译站点”的方式发布之后的:

      两者的区别显而易见,以“允许更新此编译站点”的方式发布之后网站的安全无法保障,另外效率也会比较低,虚拟目录里面的.aspx.cdcab7d2.compiled文件也都没有了,也就是没有预编译,没有预先生成,每次需要的时候临时编译页面,访问第一次会很慢,但是第二次...第三次...就很快了。但是我测试了很多次这种做法确实可以解决“file 'soLog.aspx' has not been pre-compiled,and cannot be requested.”的问题,这种方式确实有很多的隐患,偶尔临时用一下以解燃眉之急。

查看全文
  • 相关阅读:
    问题排查帮助手册
    《操作系统真象还原》环境搭建
    crawlergo动态爬虫去除Spidername使用
    python实现排序算法
    深海 => 暴力扫描挖掘机
    WEB安全漏洞挖掘向入坑指北
    关于我 About Me
    代码审计系列题目CTFD部署(上)
    ARL资产导出对接Xray扫描
    Xray批量化自动扫描
  • 原文地址:https://www.cnblogs.com/allen0118/p/2840435.html
  • Copyright © 2011-2022 走看看