當前位置:首頁 » 編程軟體 » iis預編譯

iis預編譯

發布時間: 2023-07-01 18:53:41

『壹』 VS2005 debug編譯和msbuild編譯 有什麼區別

用aspnet_compiler發布網站在asp.net 2.0模型中,vs2005已經完全脫離了編譯而成為了一個徹底的ide.算是一個不小的改動。其中更是取消了有關Web Application的概念,使得習慣了vs2003的人剛開始的時候會有一些摸不著頭腦。下面簡單說一下我在使用過程中自己總結的,算是一點經驗。

新建web工程並且位置是文件系統的時候,vs2005隻是幫你建好了一個sln文件,這個東西只是指引msbuild 如何進行編譯的,過程是:ide 調用 msbuild ,msbuild解析sln文件,msbuild調用aspnet_compiler.exe進行網站的編譯。所以aspnet_compiler.exe只是負責進行網站的編譯的。

預編譯的概念在 .netframework 1.1 裡面就存在了,vs2003中的預編譯指的是將頁面對應的cs/vb文件與resx文件編譯後統一集成到一個dll中放到bin目錄下,將aspx文件直接拷貝過去。這樣做會留下隱患,因為aspx文件就直接暴露在最後的發行包中,如果完全是codeb-behind模型還好,只能改改界面,如果採用了頁面上的來生成頁面,源代碼就暴露了。針對這些問題,vs2005採用了一種新的模式。
請參看ASP.NET 編譯工具 (Aspnet_compiler.exe) 這篇文章了解對各種文件的處理方式。

IDE發布:
vs2005中選擇 生成-〉發布網站,在對話框中的操作將映射到aspnet_compiler.exe的參數中,可更新的發布對應 -u,其他選項類似,請參考上面的文章了解。
注意:發布時將忽略web.config中的debug參數,統一生成無調試信息的文件。

手工編譯:
簡單說來,如果是無更新發布模式編譯,appcode下面的class編譯成dll放在bin下,頁面內容清空位置不變作佔位用,同時頁面被編譯成一個隨機名稱的dll,增加一個同名.compiled文件到bin目錄下,內容大概如下:

<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/Forum/AdminList.aspx" hash="6772609c3" filehash="49154463f1d6738c" flags="110000" assembly="App_Web_hmrycg3w" type="ASP.forum_adminlist_aspx">
<filedeps>
<filedep name="/Controls/footer.ascx" />
<filedep name="/Controls/header.ascx" />
<filedep name="/Forum/AdminList.aspx" />
<filedep name="/Forum/AdminList.aspx.cs" />
<filedep name="/Forum/menu.ascx" />
<filedep name="/Forum/menu.ascx.cs" />
</filedeps>
</preserve>
裡面只是列出了頁面上的customcontrol,這里已經完成了和masterfile的映射。這樣最大限度的保護了頁面的敏感信息,發布過的網站中只能看見一堆文件名了。可更新的發布模式與vs2003類似,頁面就直接拷貝過來不予編譯了。

講了一堆原理,下面說一下aspnet_compiler.exe的調用方法,這是我使用的例子

我的開發目錄是這樣的

Project/
library/
devroot/
pubroot/
proj.sln
使用的命令如下:

aspnet_compiler -v / -p .\devroot -f .\pubroot
分析:

-v / 指明了iis的虛擬目錄
-p .\devroot 表示代碼實際位置
.\pubroot 指明了要發布的位置
-f 表示強制改寫目標位置
你還可以用-u來進行傳統意義上的預編譯,-d來插入編譯符號。

總的來說,aspnet_compile結合msbuild,提供了一個很好的自動化編譯環境,值得研究研究:)

『貳』 沒有安裝apache也可以運行php程序嗎

沒有安裝apache可以運行php的,可以用IIS、ngnix等作為伺服器。使用iis運行php的方法如下:

1、下載安裝php,安裝時默認路徑:

『叄』 沒有VS軟體,編寫的ASP.net web應用程序能使用嗎

vs只是一個便於編寫.net程序的工具而已,同時它也集成了iis中的功能。而asp.net運行的條件與是否安裝vs沒有關系,關鍵要有.net framework,即.net框架,另外看你的.net程序版本,只要運行你的程序的.net版本大於等於你自己機器上使用的版本即可以正常運行。

熱點內容
書本編譯是什麼意思 發布:2025-02-08 04:45:56 瀏覽:951
淘寶密碼賬號在哪裡看 發布:2025-02-08 04:29:39 瀏覽:536
描繪四季的美文寫一份朗讀腳本 發布:2025-02-08 04:29:21 瀏覽:138
金蝶軟體伺服器是電腦嗎 發布:2025-02-08 04:27:06 瀏覽:973
linux如何搭建c編譯環境 發布:2025-02-08 04:24:49 瀏覽:819
ps腳本批量處理切圖 發布:2025-02-08 04:19:03 瀏覽:57
iisftp命令 發布:2025-02-08 04:04:39 瀏覽:455
安卓為什麼軟體老更新 發布:2025-02-08 03:53:40 瀏覽:735
演算法實際應用 發布:2025-02-08 03:53:07 瀏覽:535
c語言加密文本 發布:2025-02-08 03:47:50 瀏覽:681