ASP.NET網站發布-允許更新此預編譯站點 打勾與不打勾的區別


  發布網站時在打開的對話框中,有一個選項是至關重要的,那就是“允許更新此預編譯站點”;

  “允許更新此預編譯站點”這一項,默認情況下,前面是打上一個√的,至於要不要打上一個√,是可選的,那么,打勾與不打勾,有何區別呢?

  也許大家都曾經發布過net網站,一般情況下,網站項目中的所有CS文件,會自動生成一個DLL動態鏈接庫,這就能夠很好的保護網站的源代碼,因為代碼一般都是放在CS文件里面的,既然都生成了DLL文件,那么,上傳到虛擬空間,別人就不能打開來看了!

  但是,其它的文件,諸如ashx、aspx等文件,里面原來有什么,就是什么,別人可以打開這些文件來查看,盡管別人看不見CS代碼,但是仍然能夠看見ASPX文件里面的HTML代碼或部分服務器控件及相關的屬性;

  還有,ashx這樣的文件,就相當於一個cs文件,里面的代碼也是能夠看見的。

  因此,cs文件倒是安全了,但是網站中的ASPX、asxh等文件,是不安全的;對於整個網站而言,只有局部的安全,而沒有整體的安全。

  那么,到底有沒有一種辦法,讓上傳到虛擬空間的網站文件,都安全呢?方法是有的,通過“允許更新此預編譯站點”這一項前面的√,就能實現;

  ①給“允許更新此預編譯站點”打√


  如果您給此項打勾,然后發布網站,那么,結果是這樣的,整個網站文件,除了所有的CS文件編譯成為一個DLL文件之外,其它的文件,和原來的沒有任何變化,里面是什么,還是什么,只要別人通過記事本一打開,里面的代碼、HTML代碼等,都可以讓別人一覽無余。

  除此之外,通過此種方式發布的網站,當用戶第一次訪問某個頁面的時候,需要經過編譯,查找BUG,之后,如果沒有任何錯誤,才能正常訪問,因此,速度會變得比較慢。(第二次、第三次……訪問,速度就正常了)

  ②取消“允許更新此預編譯站點”前面的√

  如果您在發布網站的時候,取消了“允許更新此預編譯站點”前面的勾,那么,結果是這樣的:

  1、網站里面的所有CS文件,都被編譯成為一個DLL文件;

  2、除了cs文件,其它的文件,諸如ASPX、ASHX等文件,也一同被編譯起來,每個文件都在BIN目錄里面生成一個對應的*.compiled文件;

  之后,如果您通過記事本查看ASPX、ASHX等文件,里面不會看到任何的代碼,就連HTML代碼標記都看不見,打開這樣的文件,里面只有一行文字,內容為“這是預編譯工具生成的標記文件,不應被刪除!”

  但是,網站的訪問卻是正常的,不會出現任何不良的問題。

  所以呢,使用這種方式發布網站,什么文件都不能通過記事本打開,里面顯示的都是一行文字,因此,網站文件就非常安全了。

  此外,通過此種方法發布的網站,所有內容都編譯好了,打開的速度是很快的。

 

文章轉載自:http://blog.csdn.net/changyuming/article/details/6533440


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM