.NET visual studio發布網站 允許更新此先行編譯網站 && 使用固定命名和單頁程式集

來源:互聯網
上載者:User

標籤:style   blog   color   io   使用   ar   strong   檔案   div   

①允許更新此先行編譯網站

  我們可以通過如下的方法發布VS2008的網站: “產生”→“發布網站”;彈出對話方塊!在開啟的對話方塊中,有一個選項是至關重要的,那就是“允許更新此先行編譯網站”;

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

  也許大家都曾經發布過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代碼標記都看不見,開啟這樣的檔案,裡面只有一行文字,內容為“這是先行編譯工具產生的標記檔案,不應被刪除!”

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

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

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

②使用固定命名和單頁程式集

  預設情況下,當發布網站時,ASP.NET 會使用批編譯功能來編譯網站:編譯器將每個檔案夾中的多個源檔案的輸出合并到每個檔案夾的單個程式集中。編譯器根據各種不同的因素(包括源檔案間的依賴項)來決定要合并哪些源輸出。批編譯將產生的名稱分配給產生的程式集,而程式集不會直接映射到原始的源檔案。有了批編譯功能,每次發布網站時都會重建程式集名稱。

  如果要只發布對網站特定部分的更新而不重新部署整個網站,則批編譯所建立的程式集可能不適合於這種 網站。在這種情況下,使用與源檔案一對一映射且具有可預知名稱的程式集可能會更為方便。在 Visual Web Developer 中發布 ASP.NET 網站時,可以選擇為單頁程式集產生固定檔案名稱;單頁程式集是已編譯的程式集,每個單頁程式集對應於單個頁或使用者控制項(即 .aspx、.ascx 和 .master 檔案)。固定檔案名稱選項也會在您編譯和發布網站時保留程式集的名稱。對單頁程式集使用固定檔案名稱時,將關閉批編譯功能以進行先行編譯。(主題和面板檔案以及不包含頁或使用者控制項的其他檔案夾都將繼續編譯為單個程式集。)選擇產生固定程式集名稱時,ASP.NET 將執行以下操作:

  為應用程式中的每個 .aspx、.ascx 和 .master 檔案建立一個程式集。應該限制應用程式中的頁數以減少產生的程式集數量。使用頁的虛擬路徑作為頁的程式集的名稱。如果虛擬路徑長度超過作業系統的檔案名稱長度限制,該工具將改為使用虛擬路徑的雜湊。與批編譯時間一樣,將頂層目錄(如 App_Code 目錄)中的檔案編譯為單個程式集。

.NET visual studio發布網站 允許更新此先行編譯網站 && 使用固定命名和單頁程式集

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.