要說免費的虛擬主機的話,最好的服務商應該就是Microsoft Azure(不是Windows Azure由世紀互聯運營),提供免費的1GB .NET/Java/Python/Php空間,日流量有限制可是不算過高。免費的版本不能綁域名,因此你得用重定向或者DNS服務商提供的隱式跳轉服務。git
早起的Microsoft Azure並不提供免費的SQL數據庫,而號稱免費的MySQL數據庫總是建立不了實例,這就比較尷尬了,因此只能用Sqlite之類的數據庫來跑,鑑於這個,我忽然想若是沒有數據庫的話,怎麼來搞定一個純博客系統呢?github
之前用XML作一些查詢系統的時候會遇到一個坑爹的事情,也就是聽任訪問會致使文件沒關閉,另外一個請求就出來了,十分光火。參考了一下網上的案例,彷佛都是用一個文件來實現一個相似數據庫的東西。因爲腦洞大,不想拘泥於這種寫法因而就在想能不能借助文件系統這個數據庫來實現CRUD。答案是能夠的,CUD所有交給文件管理器不就行了,程序只須要讀就搞定。如今問題來了,ReadAllLines
方法依然會致使資源搶佔,那麼得換種方法,也就是不論怎麼讀都不會出現這個競爭問題,解決辦法很快就想到了——藉助服務器就行了...將文章寫成HTML專門放到一個Web文件夾裏而後訪問讀取的時候後臺發起一個get請求拿到全文後裝配到視圖模板。說白了就是Ajax(那麼也就是說用JavaScript也能實現...web
因此便用ASP.NET建立了一個Project,而後一路寫下去,感受良好後以爲搞定了就準備發佈,這個時候因爲手賤打開了微軟的ASP.NET的主站,腦子發熱去看了一下vNext,忽然以爲很厲害的樣子(雖然感受技術水平一下回到解放前),一想,爲何不搞一搞ASP.NET vNext呢,牛逼哄哄的確定很撇託了!數據庫
要說真的,撇開DI和Middleware來講若是使用DNX 4.5.1的話ASP.NET 5(也就是vNext)和之前MVC 5沒啥區別,可是DNX 4.5.1是不能跨平臺的,即對應.NET Framework,若是要跨平臺你得用CLR Core,即DNX 5.0。因爲vNext大力宣傳其跨平臺能力,因此我也決定把這個搞成一個跨平臺的(羈絆的開始)。服務器
首先DNX 5.0取消了System.Web
這個萬能一把手,因而乎用於訪問磁盤文件的Server.MapPath()
方法就廢了,可是身殘志堅,我們用StaticFiles
訪問靜態文件,好在System.IO
在DNX 5.0上能夠用(其實DNX 5.0上不少FCL都是沒有的,必須得藉助其餘實現),因而就解決了Server.MapPath()
的問題。app
這個方法也無法在DNX 5.0中用,哎喲臥槽,這玩意兒無法用那就真的只能用JavaScript了,可是用JavaScript是會暴露文章的真實路徑的...雖然JS是一種辦法可是總以爲不優雅,因此System.Net
這個命名空間裏探索了很久終於把System.Net.Http.HttpClient.GetStringAsync()方
法找到了,真是衚衕裏亂撞還進了桃花源了,方法簡單很多,效果同樣。測試
至此,核心問題解決,就能夠發佈了,因此今天下午這個FreeDBlog就搞定了,這就是我寫的第一個ASP.NET vNext應用程序,真是篳路藍縷....net
圍觀地址:這裏調試
因此完結撒花~rest
固然不是。
既然爲了DNX 5.0才折騰這麼多麻煩事兒,竟然就這麼完結了,不測試一下就跑?確定要測試一下看看效果如何,木哈哈。
確定是沒跑起來...dnu restore
後全部的包都下載下來了,可是我dnx web
就是跑不起來,不對,是跑出來報錯...然而ASP.NET vNext的Error須要本身Handle,我圖簡單就沒寫...好尷尬,在VS上調試下看看會遇到什麼。
問題在VS上一下就出來了,因爲IIS不跨平臺(廢話)因此在其餘平臺上使用了Kestrel,然而這玩意兒並不會像IIS那樣將wwwroot
做爲當前目錄,而是wwwroot
的父目錄。嗯加一個判斷就行了。
再次嘗試dnx web: