ASP.NET也像WinForm程序一樣運(yùn)行的實(shí)現(xiàn)方法
我平時(shí)就喜歡寫些小工具,還好,我會(huì)WinForm,所以這個(gè)問(wèn)題還好解決。但有時(shí)我要把一些小的網(wǎng)站作品給別人使用時(shí),同樣會(huì)遇到這種問(wèn)題。終于我做了一個(gè)很方便的小工具,徹底地解決了ASP.NET網(wǎng)站不能像WINFORM那樣運(yùn)行的難題。今天,我給大家演示一下這個(gè)小工具(它非常小,還不到300K),我相信你會(huì)喜歡它的。
記住哦,我的工具的名字叫:FishAspnetLoader
操作方式
工具好不好用,操作的易用性很關(guān)鍵,來(lái)看看我的工具是如何啟動(dòng)一個(gè)網(wǎng)站的。
在Windows資源管理器中,找到您要啟動(dòng)的網(wǎng)站所在目錄,右擊鼠標(biāo),如下圖:
此時(shí)只要點(diǎn)擊【用FishAspnetLoader加載此目錄為網(wǎng)站】即可。
是的,我沒(méi)說(shuō)錯(cuò),這樣就可以了,任何目錄都可以,也不需要您把什么什么文件拷貝到什么地方,【只要右擊鼠標(biāo),點(diǎn)一下菜單就行了】。
網(wǎng)站的運(yùn)行效果如下:
您說(shuō)現(xiàn)在是不是一個(gè)WinForm程序在運(yùn)行?
你說(shuō)什么,沒(méi)有對(duì)話框?那你再來(lái)看:
現(xiàn)在像個(gè)WinForm程序了吧。
支持的ASP.NET程序類別
前面也說(shuō)過(guò),設(shè)計(jì)這個(gè)小工具是為了解決ASP.NET程序運(yùn)行受限制的問(wèn)題。這個(gè)工具可以支持WebForm, MVC二種ASP.NET框架。包括我的WEB框架也支持哦。
所以,理論上,只要是一個(gè)ASP.NET程序,應(yīng)該都是可以運(yùn)行的,程序會(huì)自動(dòng)識(shí)別,也不需要做任何設(shè)置。還是那句話:【只要右擊鼠標(biāo),點(diǎn)一下菜單就行了】。
而且ASP.NET的版本也不是問(wèn)題,從.net 2.0 到 .net 4.0 全線支持。
它也是個(gè)HTTP服務(wù)器
剛才我說(shuō)到我的工具可以支持在任何文件夾上右擊并加載為網(wǎng)站。是的,我沒(méi)瞎說(shuō),就算那個(gè)目錄不是個(gè)ASP.NET程序目錄,是一個(gè)普通的文件目錄,或者是一個(gè)靜態(tài)網(wǎng)頁(yè)的目錄,都是可以的,此時(shí)就和IIS的行為一樣了,如果請(qǐng)求的是靜態(tài)頁(yè)面,就顯示靜態(tài)頁(yè)面,遇到目錄時(shí),就列目錄。而且此時(shí)的運(yùn)行速度會(huì)比ASP.NET程序更快哦。原因很簡(jiǎn)單:此時(shí)不加載ASP.NET運(yùn)行時(shí)環(huán)境。
來(lái)張列目錄的效果圖:
還有一點(diǎn)要補(bǔ)充:與WebDev.WebServer.exe不同,只要是Windows能支持的文件名或者目錄名,我的工具就能支持,與IIS的行為完全一致。
很遺憾,我好久沒(méi)做那種純靜態(tài)頁(yè)面的網(wǎng)站了,就不截圖展示了。我想你懂的。
支持遠(yuǎn)程機(jī)器訪問(wèn)
看到上一張截圖,您有沒(méi)有一種想法:以后如果有人找我要文件,我就讓他們?nèi)ハ螺d呀,這樣比共享目錄還安全呢。
哈哈,如果您有這種想法,那我要恭喜您了,您的安全覺(jué)悟還不錯(cuò)。是的,我的工具支持這個(gè)功能:可以讓遠(yuǎn)程機(jī)器瀏覽【做為網(wǎng)站加載的目錄】(并不是任何目錄)。
為了安全,程序默認(rèn)是不允許遠(yuǎn)程機(jī)器連接的,需要您來(lái)手工打開(kāi)。操作也簡(jiǎn)單,如下圖:
用文字描述就是:右擊系統(tǒng)托盤圖標(biāo),點(diǎn)擊【設(shè)置安全參數(shù)】菜單。此時(shí)將出現(xiàn)以下對(duì)話框:
這個(gè)對(duì)話框很簡(jiǎn)單,我想您懂的,此處略過(guò)78個(gè)字.....
不受限于Windows防火墻
剛才說(shuō)到可以讓遠(yuǎn)程機(jī)器訪問(wèn),這里有個(gè)問(wèn)題:從WindowsXP開(kāi)始,操作系統(tǒng)就集成了防火墻的功能,而且打開(kāi)這個(gè)功能的機(jī)器還真不少。如果真是這樣,前面所說(shuō)的功能就要遇到問(wèn)題了:可能會(huì)被防火墻阻攔!哦,這個(gè)工具太不完美了,人家什么什么工具怎么就沒(méi)被防火墻攔住呢?幸好,我的工具不受這個(gè)問(wèn)題的困擾,它能自動(dòng)把它添加到Windows防火墻的例外列表中,完全不打擾您的操作。
Windows 7 的防火墻也能支持哦:
尊重每個(gè)人的操作習(xí)慣
我比較注重操作體驗(yàn),我的工具對(duì)于這個(gè)理念也有很好的支持,從啟動(dòng)網(wǎng)站的那一刻起就開(kāi)始了。
當(dāng)您將一個(gè)目錄加載為網(wǎng)站時(shí),將會(huì)出現(xiàn)以下對(duì)話框,問(wèn)您要選擇什么樣的瀏覽器來(lái)瀏覽網(wǎng)站:
注意了,下面還有一個(gè)小勾勾,有時(shí)也很方便哦。
即使您當(dāng)時(shí)選擇了一個(gè)瀏覽器,后面想更換瀏覽器,也很簡(jiǎn)單??聪聢D:
用文字描述就是:右擊系統(tǒng)托盤圖標(biāo),點(diǎn)擊【選擇瀏覽器】菜單。此時(shí)將出現(xiàn)以下對(duì)話框:
仍然可以讓您選擇其它的瀏覽器。我裝了5種瀏覽器,你裝了幾種呢?
內(nèi)置多標(biāo)簽瀏覽器支持
我的這個(gè)小工具,它內(nèi)置一個(gè)多標(biāo)簽的瀏覽器(IE內(nèi)核),哪怕您的機(jī)器上只安裝了IE6,仍然可以享受多標(biāo)簽的功能。而且切換有二種方式哦:
注意:點(diǎn)擊窗口右上角的關(guān)閉按鈕,程序并沒(méi)有完全退出。要退出程序請(qǐng)右擊拖盤圖標(biāo),并點(diǎn)擊【退出】菜單。
而且對(duì)于在內(nèi)置瀏覽器的工作模式時(shí),還可以右擊任務(wù)欄,直接退出程序。如下圖(好像不支持Win7):
啟動(dòng)參數(shù)及配置文件
我的這個(gè)小工具,為了能提供一些人性化的支持,可以在啟動(dòng)時(shí)設(shè)置一些啟動(dòng)參數(shù)。此時(shí)需要從Windows開(kāi)始菜單中啟動(dòng)它,此時(shí)的啟動(dòng)界面如下:
注意哦:當(dāng)您設(shè)置好相關(guān)的啟動(dòng)參數(shù)后,可以將它保存起來(lái),對(duì)話框上面有個(gè)【另存為】按鈕,此時(shí)程序?qū)?huì)把這些參數(shù)保存為一個(gè)siteconfig文件。
一個(gè)siteconfig文件可以保存一個(gè)網(wǎng)站在啟動(dòng)時(shí)FishAspnetLoader所需的配置參數(shù)。
為了方便操作,您可以將經(jīng)常瀏覽的網(wǎng)站或目錄的配置參數(shù)保存到一個(gè)siteconfig文件中。
當(dāng)您在資源管理器的文件夾上右擊菜單或從命令行傳遞一個(gè)目錄時(shí),
FishAspnetLoader會(huì)在安裝目錄中查找是否存在關(guān)于這個(gè)目錄的配置,
如果沒(méi)有,則繼續(xù)查找目標(biāo)目錄下有沒(méi)有相關(guān)的配置文件,
如果沒(méi)有,還會(huì)查找【我的文檔】目錄有沒(méi)有相關(guān)的配置文件。
如果發(fā)現(xiàn)有相關(guān)的配置文件,則讀取那個(gè)配置文件。
當(dāng)您從“開(kāi)始菜單”中啟動(dòng)FishAspnetLoader時(shí),程序會(huì)顯示“設(shè)置啟動(dòng)參數(shù)”對(duì)話框。
如果您只是固定的瀏覽一個(gè)目錄或本機(jī)網(wǎng)站,則可以將當(dāng)前設(shè)置保存為一個(gè)名為:default.siteconfig的文件。
或者,如果是將網(wǎng)站“當(dāng)成工具”來(lái)發(fā)布,也可以事先準(zhǔn)備好這個(gè)文件。那么以后將不會(huì)出現(xiàn)這個(gè)對(duì)話框。
當(dāng)您從“資源管理器”的右鍵菜單或命令行傳遞一個(gè)目錄路徑時(shí),且在沒(méi)有找到有關(guān)這個(gè)目錄的配置時(shí),
FishAspnetLoader會(huì)查看那個(gè)目錄下是否存在web.config ,如果存在這個(gè)文件,則加載Asp.net Runtime,否則不加載,以加快啟動(dòng)速度。
如果這種判斷方式對(duì)于某個(gè)目錄不適用時(shí),請(qǐng)從“開(kāi)始菜單”中啟動(dòng)FishAspnetLoader,并為這個(gè)目錄創(chuàng)建一個(gè)siteconfig文件以指定合適的參數(shù)。
啟動(dòng)配置文件,是為了讓您能更好定制程序運(yùn)行行為而設(shè)計(jì)的,我特別提供一些參數(shù),可以讓網(wǎng)站在內(nèi)置的瀏覽器更好地偽裝成普通桌面程序。
不僅如此,工具還支持命令行的啟動(dòng)方式,可以接收一個(gè)siteconfig文件,您只要寫個(gè)批處理并在做安裝包時(shí)運(yùn)行批處理就好了。
或者參考我的另一個(gè)工具的安裝包的快捷方式做法。那個(gè)工具的啟動(dòng)命令行更簡(jiǎn)單。
也可以參考這個(gè)演示程序的配置文件。
總之:還是為了讓您方便地使用這個(gè)工具。
支持 .NET 4.0
說(shuō)明:運(yùn)行本程序僅需要 .net Frarmework 2.0
但是,如果您要運(yùn)行的網(wǎng)站是基于ASP.NET 3.5的,那么您需要安裝 .net 3.5,要運(yùn)行 .net 4.0的網(wǎng)站,要安裝 .net 4.0
如果您的機(jī)器上已經(jīng)安裝了 .net framework 4.0 ,而且希望啟用 .net 4 的支持。
只需要將安裝目錄下的文件【FishAspnetLoader.exe.config.bak】改名成【FishAspnetLoader.exe.config】即可。
部署問(wèn)題
在本文結(jié)尾,我提供這個(gè)工具的安裝包,安裝包中還包含了一些其它的文件。提供安裝包只是為了讓您更方便地使用我的工具而已。
如果您有一個(gè)網(wǎng)站,且希望由我的工具來(lái)啟動(dòng)并以桌面程序的方式來(lái)運(yùn)行,那么只需要在安裝后,把FishAspnetLoader.exe這一個(gè)程序拿出來(lái)就行了,你可以把FishAspnetLoader.exe放在您的安裝包中,并提供一個(gè)siteconfig文件,然后以命令行的方式啟動(dòng)我的工具就行了。具體做法請(qǐng)參考我的博客:
通用數(shù)據(jù)訪問(wèn)層及Ajax服務(wù)端框架的綜合示例,展示與下載
發(fā)一款數(shù)據(jù)庫(kù)的輔助工具:My-SqlViewer
上述軟件打包下載
原文: cnblogs.com fish-li
- C# WinForm 判斷程序是否已經(jīng)在運(yùn)行,且只允許運(yùn)行一個(gè)實(shí)例,附源碼
- WinForm實(shí)現(xiàn)程序一段時(shí)間不運(yùn)行自動(dòng)關(guān)閉的方法
- .Net WInform開(kāi)發(fā)筆記(二)Winform程序運(yùn)行結(jié)構(gòu)圖及TCP協(xié)議在Winform中的應(yīng)用
- c# Winform 程序自動(dòng)更新實(shí)現(xiàn)方法
- C#中WinForm程序退出方法技巧總結(jié)
- C# WinForm應(yīng)用程序降低系統(tǒng)內(nèi)存占用方法總結(jié)
- C# WinForm程序完全退出的問(wèn)題解決
- 解讀在C#中winform程序響應(yīng)鍵盤事件的詳解
- .Net中導(dǎo)出數(shù)據(jù)到Excel(asp.net和winform程序中)
- WinForm防止程序重復(fù)運(yùn)行的方法分析
相關(guān)文章
Asp.net實(shí)現(xiàn)直接在瀏覽器預(yù)覽Word、Excel、PDF、Txt文件(附源碼)
本文主要介紹了Asp.net實(shí)現(xiàn)直接在瀏覽器預(yù)覽Word、Excel、PDF、Txt文件的具體實(shí)例。文章篇尾附上源碼下載,有興趣的朋友可以看下2016-12-12asp.net 讀取Excel數(shù)據(jù)到DataTable的代碼
asp.net 讀取Excel數(shù)據(jù)到DataTable的代碼,需要的朋友可以參考下。2010-03-03淺談ASP.NET常用數(shù)據(jù)綁定控件優(yōu)劣總結(jié)
這篇文章主要介紹了淺談ASP.NET常用數(shù)據(jù)綁定控件優(yōu)劣總結(jié),以便在實(shí)際的開(kāi)發(fā)中選用合適的控件進(jìn)行數(shù)據(jù)綁定,以提高開(kāi)發(fā)效率。2016-12-12c# rabbitmq 簡(jiǎn)單收發(fā)消息的示例代碼
這篇文章主要介紹了c# rabbitmq 簡(jiǎn)單收發(fā)消息的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08Asp.net簡(jiǎn)單實(shí)現(xiàn)給圖片增加文字水印
這篇文章主要介紹了Asp.net簡(jiǎn)單實(shí)現(xiàn)給圖片增加文字水印,需要的朋友可以參考下2014-12-12如何給ASP.NET Core Web發(fā)布包做減法詳解
在ASP.Net中可以使用打包與壓縮這兩種技術(shù)來(lái)提高Web應(yīng)用程序頁(yè)面加載的性能。下面這篇文章主要給大家介紹了關(guān)于如何給ASP.NET Core Web發(fā)布包做減法的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧2018-06-06ASP.NET Core 數(shù)據(jù)保護(hù)(Data Protection 集群場(chǎng)景)下篇
這篇文章主要為大家再一次介紹了ASP.NET Core 數(shù)據(jù)保護(hù)(Data Protection),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09asp.net中使用DatagridView的增刪改方法具體實(shí)現(xiàn)
asp.net中使用DatagridView的增刪改方法具體實(shí)現(xiàn),需要的朋友可以參考一下2013-06-06.NET?CPU爆高事故事故分析某供應(yīng)鏈WEB網(wǎng)站
這篇文章主要為大家介紹了.NET?CPU爆高事故事故分析某供應(yīng)鏈WEB網(wǎng)站,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06微軟官方SqlHelper類 數(shù)據(jù)庫(kù)輔助操作類
本文主要介紹微軟官方的數(shù)據(jù)庫(kù)操作類極其使用方法,幫助大家利用已經(jīng)非常成熟的類庫(kù)來(lái)進(jìn)行快速開(kāi)發(fā)。2016-03-03