The Will Will Web

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

IIS7 靜態內容壓縮的運作過程詳解

前陣子有人問說 IIS7 靜態內容壓縮為何無法運作,當我抽空研究之後發現一些有趣的現象,在 IIS7 的靜態內容壓縮功能在第一次透過瀏覽器下載網頁時並不會進行壓縮,而是要有第二次 HTTP Request 時才會對該內容進行壓縮,而這個時候才會真的耗用 CPU 資源進行檔案壓縮,壓縮完之後才會將壓縮內容回應到用戶端。

... 繼續閱讀 ...

解決 OutputCacheLocation 指定為 ServerAndClient 的問題

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

... 繼續閱讀 ...

解決 N-Tier 多層架構設計下 LINQ to SQL 效能不彰的問題

ASP.NET MVC 的開發原則有個 SoC (Separation of Concern) 的觀念,我們在開發較大型的 ASP.NET MVC 應用程式時會特別將資料存取層(Data Access Layer) 再細分為兩個層次,分別是 Repository Layer (資料倉儲層) 負責資料存取與欄位格式驗證,與 Service Layer (服務提供層) 負責資料篩選與商業邏輯驗證,但分層之後遇到了一個之前沒想過的問題,進而導致 LINQ to SQL 查詢效能不彰。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

ASP.NET MVC 2 各版本組件編號整理與 VS2010 的注意事項

由於 ASP.NET MVC 2 日前已經正式發行(RTM),但最近從 RC2 換到 RTM 的過程中發生了一些小意外,最近有個同事因為之前安裝了 ASP.NET MVC 2 RC 最近又安裝了 ASP.NET MVC 2 RTM,原以為已經升級到最新版了,誰知道用 Visual Studio 2010 RC 開啟 ASP.NET MVC 2 的專案時還是舊版,導致在使用 client validation 時會讓在使用相容性模式瀏覽的 IE 掛掉 (此問題已在 ASP.NET MVC 2 RTM 版修正,詳見 Release Note 說明)。

... 繼續閱讀 ...

在 Ubuntu 6.10 (Edgy Eft) 下載舊版的 apt 套件與建置 PHP5

今天幫客戶弄壹台很舊的 Linux 機器,為了在上面編譯 PHP5 必須下載一些相依套件回來,但客戶的機器跑得是 Ubuntu 6.10 (Edgy Eft) 且該版本在官網已經不支援了,所以不管執行 apt-get update 或 apt-get 都會失敗,也無法正常下載套件,還好剛找到舊版的 Ubuntu 倉儲,只要修改 source.list 即可順利安裝。

... 繼續閱讀 ...

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

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

... 繼續閱讀 ...

無法開始監視 'xx' 的變更,因為已經到達網路 BIOS 命令限制

在去年底的時候曾經在客戶的網站主機收到一個 載入組態檔時發生錯誤: 無法開始監視 '\\10.0.1.1\Shared\8666-f79049226252' 的變更,因為已經到達網路 BIOS 命令限制 的錯誤,當時並不知道是什麼問題,只知道重新啟動 IIS 或回收應用程式集區就會恢復正常,但最近已經瞭解了問題發生的主因。

... 繼續閱讀 ...

如何停用 IIS5 / IIS6 / IIS7 的 SSL v2 加密協定 (含原理說明)

在多年以前 SSL 第二版 (v2) 就已經被證實有編碼加密方面的瑕疵,因此駭客很輕易的就能對 SSL v2 加密過的封包進行反解,或可能會透過中間人攻擊(Man-in-the-middle attack)手法加害於你的網站用戶,因此大多數的資安掃瞄軟體皆會建議在伺服器上關閉 SSL v2 的協定,以確保用戶端透過 SSL ( HTTPS ) 連上網站伺服器時是安全的連線。

... 繼續閱讀 ...

在多台伺服器之間複製 "效能監視器" 所載入的 "效能計數器"

有時後我們只是臨時想看伺服器當下的負載情況,所以可能會開啟效能監視器之後直接手動加入想看的效能計數器 (Performance Counter),但是一個一個的加入效能計數器頗為不便,尤其是一次要設定多台主機時更是麻煩,今天我來分享一個快速設定的方式,還可以將常用的效能計數器儲存下來,讓下次載入時更省時間。

... 繼續閱讀 ...