ASP.NET | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ASP.NET 4 為何能將預設的 Web.config 變的如此乾淨

從 ASP.NET 2.0 到 ASP.NET 3.5 就一直有新功能加入到 ASP.NET 框架中,例如 ASP.NET AJAX , ASP.NET Dynamic Data , ASP.NET Routing , ASP.NET Chart Control 等等,越來越多的功能導致 Web 專案預設的 Web.config 設定越來越肥,到了 ASP.NET 4 終於將一些常用的設定值全都放進 ASP.NET 4 的核心,現在 Web.config 只剩下 6 行就可以運作,這到底是怎麼辦到的呢?預設的設定檔又加入了哪些東西?

... 繼續閱讀 ...

解決 OutputCacheLocation 指定為 ServerAndClient 的問題

Web 效能調校博大精深,眉眉角角的細節之多實在難以整理,我想大部分人也都跟我一樣,也是從一次又一次與茶包戰鬥中累積經驗,這次又遇到了一個有趣的問題。當我想將頁面設定輸出快取時,可能會希望同時快取在伺服器端(Server)與用戶端(Client),因此在設定 OutputCache 時有個 Location 屬性,我們會將其設定為 ServerAndClient 或 Any,但是你可否知道即便你這樣設定,一樣無法快取網頁內容於用戶端(Client),所以單單這樣設定並沒有達到我們真正想達到的目的 ( 同時在 Server 與 Client 快取網頁 )。

... 繼續閱讀 ...

ASP.NET MVC 開發心得分享 (17):OutputCache 帶來的問題

為了能讓網站運作時能夠得到最好執行效能,運用 OutputCache 機制絕對是不可或缺的技能之一,而在 ASP.NET MVC 套用 OutputCache 機制就是使用 OutputCacheAttribute Class 即可輕易做到輸出快取,不過在套用 OutputCache 的過程也很有可能會遇到一些莫名的錯誤,須了解背後原理才能得知問題發生的原因。

... 繼續閱讀 ...

介紹好用工具:Stop Forum Spam (有效阻擋垃圾訊息入侵)

我的部落格偶而會遭受廣告機器人攻擊,常常有一些奇怪的英文廣告被發表在文章的回應裡,每次看來源 IP 都是從美國/加拿大來的居多,我想大多是透過機器人自動攻擊的,由於時常要刪除這些廣告留言也覺得蠻煩的,上網找到一個 Stop Forum Spam 網站,這裡記錄了許多全世界到處在論壇散佈廣告訊息的 IP 位址、常用的帳號、Email 等,有趣的是來我這發表廣告的 IP 位址都會出現在這裡,此網站提供簡易的 API 方便透過程式整合,所以就寫了個小程式保護我的部落格留言機制。

... 繼續閱讀 ...

解決 Memcached Provider 不支援中文 Cache Key 的問題

前陣子使用 Memcached 當成我們某個 ASP.NET 網站的後端,但只要遇到採用 Non-ASCII 的文字當成快取的鍵值(Key)就會自動消失,經過一番研究後確認是 Memcached Provider 的 DefaultKeyTransformer 在處理所有 memcached 通訊協定時所有的 Key 都是以 Encoding.ASCII 做為文字編碼,以致於所有中文字都無法讀取而自動被忽略,而也在編譯時與執行時期都不會出現任何錯誤,因此必須特別小心。

... 繼續閱讀 ...

透過 logman 指令有效率的操作效能監視器

這個星期都忙碌於一個大型網站的效能調校,而效能調校首重數據分析,透過數據分析進一步瞭解應用程式所遇到的效能瓶頸,最常使用的工具不外乎就是 效能監視器 ( Performance Monitor ),但由於有多台主機,每壹台都要重新選取一次這些 效能計數器 (Performance Counter) 實在很麻煩,所以若能透過指令列工具建立效能監視集合就會十分方便。

... 繼續閱讀 ...

將 ASP.NET 網站部署在 UNC 路徑上最重要的步驟

如果要將 ASP.NET 網站安裝在遠端的 UNC 路徑上,在設定 IIS 時除了一般檔案的存取權限外,最重要的就是 ASP.NET 的執行權限是否有正確設定,由於所有置於 UNC 路徑上的 .NET 應用程式都會預設套用 LocalIntranet 群組,所以你無法將 ASP.NET 佈署在 UNC 路徑上,除非自行新增 .NET 安全性原則。

... 繼續閱讀 ...

解決在 Visual Studio 中因為權限不足而無法建置網站的問題

前陣子遇到一個很怪的問題,在正常的安裝下竟然有個專案從 SVN 版本庫簽出後無法正確安裝至我本機的 IIS7 中執行,甚至於無法在 Visual Studio 執行建置(Build),而且錯誤的狀況都是跟權限有關,但我花了好一段時間才將這個問題解決,原來就是卡在一個很小的地方沒注意到。

... 繼續閱讀 ...

如何讓 IIS6 / IIS7 中同站台不同應用程式間共用 Session 資料

在 Web Farm 環境下部署網站需要關注的細節可不少,在部署大型網站的時候 IIS 這部分到底要算 IT 的領域還是開發人員(Developer)的領域其實分不太清楚,像要在「同一個站台」區分「不同應用程式」且還要能讓 Session 彼此互通,這到底應該歸誰管呢?這可不是用「ASP.NET 開發伺服器」可以模擬出來的,而 IT 人員如果不會寫程式應該也不知該如何是好,這也是我認為 ASP.NET 開發人員應該多熟悉 IIS 的原因。

... 繼續閱讀 ...

利用 WebClient 類別模擬 HTTP POST 表單送出的注意事項

我們都知道 WebClient 類別是個簡單易用的東西,不只可以用作 HTTP 用途,連 FTP 都能用,想偷懶時很快就能寫出一些網路資料上傳、下載的程式,像我在寫一些測試程式時經常會使用 WebClient 類別,但大多情況都用來「下載網頁」居多,少有模擬表單上傳資料的情況,但利用 WebClient 類別在「傳送表單資料」時要小心使用,否則遠端接不到資料又很難除錯時哪就麻煩了。

... 繼續閱讀 ...

如何辨識使用者從瀏覽器按下 F5 或 Ctrl + R 重新整理頁面

有時候有些頁面有計數器或者有些程式碼只需要讓使用者執行一遍而已,我們會不希望使用者拼命用 F5 或 Ctrl + R 重新整理頁面時擾亂程式的運作,要達成這個需求其實有很多作法,例如透過一個 Cookie、一個 Session 來做判斷,但今天我要分享一個暗黑密記,教你如何從 HTTP Request Header 就可以判斷出使用者正在執行該頁面的重新整理。

... 繼續閱讀 ...