ASP.NET也像WinForm程式一樣啟動並執行實現方法

來源:互聯網
上載者:User

由於現在會使用WinForm的人是越來越少了,可能有時候做點小東西就只好用ASP.NET去完成了(喜歡控制台的朋友請不要頂針),如果是這樣,悲劇就發生了:一個小工具(或者小的示範項目),發給朋友去用,總不至於讓人家也裝個IIS或者VS20XX吧?如果沒有這二樣,這種小工具還真不方便運行。怎麼辦?做過ASP.NET開發的人都知道:網站通常要布署到IIS上才能直接運行,當然也不排除你用VS開啟項目並使用VS內建的WebDev.WebServer.exe來啟動程式。這種方式難免有不方便的時候。

我平時就喜歡寫些小工具,還好,我會WinForm,所以這個問題還好解決。但有時我要把一些小的網站作品給別人使用時,同樣會遇到這種問題。終於我做了一個很方便的小工具,徹底地解決了ASP.NET網站不能像WINFORM那樣啟動並執行難題。今天,我給大家示範一下這個小工具(它非常小,還不到300K),我相信你會喜歡它的。

記住哦,我的工具的名字叫:FishAspnetLoader

操作方式

工具好不好用,操作的易用性很關鍵,來看看我的工具是如何啟動一個網站的。

在Windows資源管理員中,找到您要啟動的網站所在目錄,右擊滑鼠,如:

此時只要點擊【用FishAspnetLoader載入此目錄為網站】即可。

是的,我沒說錯,這樣就可以了,任何目錄都可以,也不需要您把什麼什麼檔案拷貝到什麼地方,【只要右擊滑鼠,點一下菜單就行了】。

網站的運行效果如下:

您說現在是不是一個WinForm程式在運行?

你說什麼,沒有對話方塊?那你再來看:

現在像個WinForm程式了吧。

支援的ASP.NET程式類別

前面也說過,設計這個小工具是為瞭解決ASP.NET程式運行受限制的問題。這個工具可以支援WebForm, MVC二種ASP.NET架構。包括我的WEB架構也支援哦。

所以,理論上,只要是一個ASP.NET程式,應該都是可以啟動並執行,程式會自動識別,也不需要做任何設定。還是那句話:【只要右擊滑鼠,點一下菜單就行了】。

而且ASP.NET的版本也不是問題,從.net 2.0 到 .net 4.0 全線支援。

它也是個HTTP伺服器

剛才我說到我的工具可以支援在任何檔案夾上右擊並載入為網站。是的,我沒瞎說,就算那個目錄不是個ASP.NET程式目錄,是一個普通的檔案目錄,或者是一個靜態網頁的目錄,都是可以的,此時就和IIS的行為一樣了,如果請求的是靜態頁面,就顯示靜態頁面,遇到目錄時,就列目錄。而且此時的運行速度會比ASP.NET程式更快哦。原因很簡單:此時不載入ASP.NET運行時環境。

來張列目錄的:

還有一點要補充:與WebDev.WebServer.exe不同,只要是Windows能支援的檔案名稱或者目錄名,我的工具就能支援,與IIS的行為完全一致。

很遺憾,我好久沒做那種純靜態頁面的網站了,就不展示了。我想你懂的。

支援遠程機器訪問

看到上一張,您有沒有一種想法:以後如果有人找我要檔案,我就讓他們去下載呀,這樣比共用目錄還安全呢。

哈哈,如果您有這種想法,那我要恭喜您了,您的安全覺悟還不錯。是的,我的工具支援這個功能:可以讓遠程機器瀏覽【做為網站載入的目錄】(並不是任何目錄)。

為了安全,程式預設是不允許遠程機器串連的,需要您來手工開啟。操作也簡單,如:

用文字描述就是:右擊系統托盤表徵圖,點擊【設定安全參數】菜單。此時將出現以下對話方塊:

這個對話方塊很簡單,我想您懂的,此處略過78個字.....

不受限於Windows防火牆

剛才說到可以讓遠程機器訪問,這裡有個問題:從WindowsXP開始,作業系統就整合了防火牆的功能,而且開啟這個功能的機器還真不少。如果真是這樣,前面所說的功能就要遇到問題了:可能會被防火牆阻攔!哦,這個工具太不完美了,人家什麼什麼工具怎麼就沒被防火牆攔住呢?幸好,我的工具不受這個問題的困擾,它能自動把它添加到Windows防火牆的例外列表中,完全不打擾您的操作。

Windows 7 的防火牆也能支援哦:

尊重每個人的操作習慣

我比較注重操作體驗,我的工具對於這個理念也有很好的支援,從啟動網站的那一刻起就開始了。

當您將一個目錄載入為網站時,將會出現以下對話方塊,問您要選擇什麼樣的瀏覽器來瀏覽網站:

注意了,下面還有一個小勾勾,有時也很方便哦。

即使您當時選擇了一個瀏覽器,後面想更換瀏覽器,也很簡單。看:

用文字描述就是:右擊系統托盤表徵圖,點擊【選擇瀏覽器】菜單。此時將出現以下對話方塊:

仍然可以讓您選擇其它的瀏覽器。我裝了5種瀏覽器,你裝了幾種呢?

內建多標籤瀏覽器支援

我的這個小工具,它內建一個多標籤的瀏覽器(IE核心),哪怕您的機器上只安裝了IE6,仍然可以享受多標籤的功能。而且切換有二種方式哦:

注意:點擊視窗右上方的關閉按鈕,程式並沒有完全退出。要退出程式請右擊拖盤表徵圖,並點擊【退出】菜單。

而且對於在內建瀏覽器的工作模式時,還可以右擊工作列,直接退出程式。如(好像不支援Win7):

啟動參數及設定檔

我的這個小工具,為了能提供一些人性化的支援,可以在啟動時設定一些啟動參數。此時需要從Windows開始菜單中啟動它,此時的啟動介面如下:

注意哦:當您設定好相關的啟動參數後,可以將它儲存起來,對話方塊上面有個【另存新檔】按鈕,此時程式將會把這些參數儲存為一個siteconfig檔案。

一個siteconfig檔案可以儲存一個網站在啟動時FishAspnetLoader所需的配置參數。

為了方便操作,您可以將經常瀏覽的網站或目錄的配置參數儲存到一個siteconfig檔案中。

當您在資源管理員的檔案夾上右擊菜單或從命令列傳遞一個目錄時,

FishAspnetLoader會在安裝目錄中尋找是否存在關於這個目錄的配置,

如果沒有,則繼續尋找目標目錄下有沒有相關的設定檔,

如果沒有,還會尋找【我的文件】目錄有沒有相關的設定檔。

如果發現有相關的設定檔,則讀取那個設定檔。

當您從“開始菜單”中啟動FishAspnetLoader時,程式會顯示“設定啟動參數”對話方塊。

如果您只是固定的瀏覽一個目錄或本機網站,則可以將當前設定儲存為一個名為:default.siteconfig的檔案。

或者,如果是將網站“當成工具”來發布,也可以事先準備好這個檔案。那麼以後將不會出現這個對話方塊。

當您從“資源管理員”的右鍵菜單或命令列傳遞一個目錄路徑時,且在沒有找到有關這個目錄的配置時,

FishAspnetLoader會查看那個目錄下是否存在web.config ,如果存在這個檔案,則載入Asp.net Runtime,否則不載入,以加快啟動速度。

如果這種判斷方式對於某個目錄不適用時,請從“開始菜單”中啟動FishAspnetLoader,並為這個目錄建立一個siteconfig檔案以指定合適的參數。

啟動設定檔,是為了讓您能更好定製程式運行行為而設計的,我特別提供一些參數,可以讓網站在內建的瀏覽器更好地偽裝成普通傳統型程式。

不僅如此,工具還支援命令列的啟動方式,可以接收一個siteconfig檔案,您只要寫個批處理並在做安裝包時運行批處理就好了。

或者參考我的另一個工具的安裝包的捷徑做法。那個工具的啟動命令列更簡單。

也可以參考這個示範程式的設定檔。

總之:還是為了讓您方便地使用這個工具。

支援 .NET 4.0

說明:運行本程式僅需要 .net Frarmework 2.0

但是,如果您要啟動並執行網站是基於ASP.NET 3.5的,那麼您需要安裝 .net 3.5,要運行 .net 4.0的網站,要安裝 .net 4.0

如果您的機器上已經安裝了 .net framework 4.0 ,而且希望啟用 .net 4 的支援。

只需要將安裝目錄下的檔案【FishAspnetLoader.exe.config.bak】改名成【FishAspnetLoader.exe.config】即可。

部署問題

在本文結尾,我提供這個工具的安裝包,安裝包中還包含了一些其它的檔案。提供安裝包只是為了讓您更方便地使用我的工具而已。

如果您有一個網站,且希望由我的工具來啟動並以傳統型程式的方式來運行,那麼只需要在安裝後,把FishAspnetLoader.exe這一個程式拿出來就行了,你可以把FishAspnetLoader.exe放在您的安裝包中,並提供一個siteconfig檔案,然後以命令列的方式啟動我的工具就行了。具體做法請參考我的部落格:

通用資料訪問層及Ajax服務端架構的綜合樣本,展示與下載

發一款資料庫的協助工具輔助:My-SqlViewer

上述軟體打包下載

原文: cnblogs.com fish-li

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.