在 2011 年的今天,我們又再度接手了一個 ASP.NET 1.1 的網站維護,而在開發主機都正常運作了幾個月之後卻又再度遇到鬼打牆的問題,而且這個錯誤訊息真的會讓人丈二金剛摸不著頭緒【嘗試執行專案時發生錯誤: 無法在Web伺服器上啟動偵錯。無法啟動 ASP.NET 或 ATL Server 偵錯。 請確認該伺服器已正確安裝 ASP.NET 或 ATL Server。】,我跟他奮鬥了五個小時才弄清楚問題發生的主因。
... 繼續閱讀 ...
IIS 7.5 Express 是一套針對 ASP.NET 開發人員特別設計的 IIS 7.5 版本,我發現有許多人並不知道他的存在,甚至於不知道何時要使用他,就覺得這只是另一個提供 ASP.NET 執行環境的程式而已,在 Visual Studio 2010/2008/2005 內建的 ASP.NET 開發伺服器 (Cassini) 已經使用很久,用來作為開發測試之用也沒什麼問題,有必要將開發環境的伺服器修改成使用 IIS 7.5 Express 來執行嗎?今天我就提出幾個重要的觀點。
... 繼續閱讀 ...
我之前寫過一篇〔如何使用 Visual Studio 2010 的「單鍵發行」功能〕文章,當時簡直挖到寶一樣,可惜最近又開始維護幾個多年前用 ASP.NET 2.0 建置的網站,當時是以 網站專案 (WebSite Project) 的專案類型開發的,因此 Visual Studio 2010 的「單鍵發行」功能就變的英雄無用武之地,還好透過 Visual Studio 2010 Web Deployment Projects (WDP) 可以將網站專案封裝起來,但是上週遇到一個怎樣都無法發行成功的問題,查了兩個小時才找到這原來是一個 Visual Studio 2010 ( 含 SP1 ) 的 Bug,使用的人要特別注意這個小問題。
... 繼續閱讀 ...
這陣子都在玩跟網站部署有關的相關技術,其中有一段一定要透過 MSDeploy 手動部署網站上去,但問題是在透過 MSDeploy 批次檔進行手動部署網站時,由於 MSDeploy 會自動比對遠端與本地端的檔案差異執行「雙向同步」,這反而造成了當遠端伺服器裡有新增的檔案(例如在 App_Data 下有動態新增的檔案),每次透過 MSDeploy 部署後那些不存在本地端的檔案全部都會被刪除,這是個大問題,而我也研究了好些時間才找到方法解決這個問題。
... 繼續閱讀 ...
今天發現一段特別的程式碼,我們有個方案(Solution)裡有個共用的類別庫(Class Library)專案,此類別庫專案同時提供給多個 Windows 應用程式、Windows 服務以及 ASP.NET 應用程式來使用,但同事用了有點複雜的程式撰寫方法取得目前的 .NET 程式是否為 ASP.NET 執行環境,因此特別撰寫一篇短文來提醒較為簡單易懂的方式。
... 繼續閱讀 ...
Membase Server 是我目前看到支援 Memcached 最專業的一套產品,因此花了些時間研究他,除此之外 Enyim Memcached Client 也是我目前看到與 Membase Server 整合度最高的 .NET 函式庫,以下是我這陣子的研究心得筆記。
... 繼續閱讀 ...
目前公司的專案已經越來越多使用 .NET Framework 4.0 版本,然後舊有的網站有時後要增加一些功能或新增的功能會用到一些 .NET 4.0 編譯好的組件時就非常麻煩,要不就是重新編譯參考的組件到 2.0 版(但不一定會編譯成功),要不就是將舊有的 ASP.NET 網站直接升級到 ASP.NET 4.0,我在 VS2010 上市發表會:Web 開發效率提昇 - ASP.NET 4.0 演講時有分享一些網站升級的注意事項,不過今天我特地將手動升級網站的完整過程記錄下來,讓各位按圖施工、保證成功!^_^
... 繼續閱讀 ...
由於每個 IIS 版本之間多少都會有功能上的增進與架構上的差異,像我們在寫 ASP.NET MVC 的時候有時後就需要依據 IIS 的版本來做出一些特別的判斷,所以必須透過程式來取得正在執行的 IIS 版本資訊,在 ASP.NET 裡取得正在執行的 IIS 版本資訊原本是一件容易的事,不過當遇到了跟我們一樣的特殊情況就沒那麼簡單了,有興趣的就繼續看下去。
... 繼續閱讀 ...
幾天前有兩位資安研究員 (Thai Duong and Juliano Rizzo) 發現了一個 ASP.NET 的資安弱點,主要的點出在 .NET 實做 AES 加解密演算法的問題,駭客透過這個弱點即可在短時間內猜出你網站的加密金鑰進而入侵你的網站系統,在 ASP.NET 裡使用到加解密的地方非常多,像是 Forms Authentication 與 ViewState 都是非常常見的功能,加密金鑰 (MachineKey) 被猜到之後就可以讓駭客用任意身份使用你的網站或任意竄改 ViewState 中的狀態資訊,嚴重性非同小可,各位一定要即時因應。
... 繼續閱讀 ...